Submission #1865011
Source Code Expand
#include<cstdio>
//segment tree size==2^0+...+2^18==524287
long long a[200000], st[524287], d[524287];
long long max(long long a, long long b){
return a < b ? b : a;
}
//O(n+qlogn)...stを作るのにdpの2倍ほど時間がかかる
int main() {
int n, q, i, j, p;
long long x, y;
long long suma=0;
scanf("%d%d", &n, &q);
//start=segment treeの最下段の始まる位置=segment treeの最下段の長さ-1
int start = 2;
for (i = n - 2; i > 0; i = i / 2) {
start = start * 2;
}
start--;
//初期値の代入
for (i = 0; i < 2 * n; i++) {
scanf("%lld", &a[i]);
suma += a[i];
}
scanf("%lld", &y);
for (i = start; i < start + 2 * n - 2; i++) {
scanf("%lld", &y);
d[i] = y - a[i - start + 1];
}
scanf("%lld", &y);
for (i = start + 2 * n - 2; i <= 2 * start; i++) {
d[i] = -1000000000000000;
}
for (i = start; i <= start + 2 * n - 1; i++) {
st[i] = 0;
}
//segment treeの作成
for (i = start - 1; i >= 0; i--) {
st[i] = max(st[2 * i + 1] + st[2 * i + 2], d[2 * i + 1] + d[2 * i + 2]);
d[i] = max(st[2 * i + 1] + d[2 * i + 2], st[2 * i + 2] + d[2 * i + 1]);
}
for (i = 0; i < q; i++) {
scanf("%d%lld%lld", &p, &x, &y);
suma += x - a[p - 1];
a[p - 1] = x;
if (p != 1 && p != 2 * n) {
j = start + p - 2;
d[j] = y - x;
do {
j = (j - 1) / 2;
st[j] = max(st[2 * j + 1] + st[2 * j + 2], d[2 * j + 1] + d[2 * j + 2]);
d[j] = max(st[2 * j + 1] + d[2 * j + 2], st[2 * j + 2] + d[2 * j + 1]);
} while (j > 0);
}
printf("%lld\n", suma + st[0]);
}
return 0;
}
Submission Info
Submission Time |
|
Task |
C - Paired Parentheses |
User |
eikani |
Language |
C++14 (GCC 5.4.1) |
Score |
700 |
Code Size |
1606 Byte |
Status |
AC |
Exec Time |
100 ms |
Memory |
11392 KB |
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:17:23: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d", &n, &q);
^
./Main.cpp:28:23: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%lld", &a[i]);
^
./Main.cpp:31:19: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%lld", &y);
^
./Main.cpp:33:20: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%lld", &y);
^
./Main.cpp:36:19: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%lld", &y);
^
./Main.cpp:51:34: warning: ignori...
Judge Result
Set Name |
Sample |
Subtask1 |
Subtask2 |
All |
Score / Max Score |
0 / 0 |
200 / 200 |
300 / 300 |
200 / 200 |
Status |
|
|
|
|
Set Name |
Test Cases |
Sample |
00_example_01.txt, 00_example_02.txt |
Subtask1 |
00_example_01.txt, s1_01.txt, s1_02.txt, s1_03.txt, s1_04.txt, s1_05.txt, s1_06.txt, s1_07.txt, s1_08.txt, s1_09.txt, s1_10.txt, s1_11.txt, s1_12.txt, s1_13.txt |
Subtask2 |
s2_14.txt, s2_15.txt, s2_16.txt, s2_17.txt, s2_18.txt, s2_19.txt, s2_20.txt, s2_21.txt, s2_22.txt, s2_23.txt, s2_24.txt, s2_25.txt, s2_26.txt, s2_27.txt, s2_28.txt |
All |
00_example_01.txt, 00_example_02.txt, s1_01.txt, s1_02.txt, s1_03.txt, s1_04.txt, s1_05.txt, s1_06.txt, s1_07.txt, s1_08.txt, s1_09.txt, s1_10.txt, s1_11.txt, s1_12.txt, s1_13.txt, s2_14.txt, s2_15.txt, s2_16.txt, s2_17.txt, s2_18.txt, s2_19.txt, s2_20.txt, s2_21.txt, s2_22.txt, s2_23.txt, s2_24.txt, s2_25.txt, s2_26.txt, s2_27.txt, s2_28.txt, s3_29.txt, s3_30.txt, s3_31.txt, s3_32.txt, s3_33.txt, s3_34.txt, s3_35.txt, s3_36.txt, s3_37.txt, s3_38.txt, s3_39.txt, s3_40.txt, s3_41.txt |
Case Name |
Status |
Exec Time |
Memory |
00_example_01.txt |
AC |
1 ms |
2176 KB |
00_example_02.txt |
AC |
1 ms |
2176 KB |
s1_01.txt |
AC |
1 ms |
2176 KB |
s1_02.txt |
AC |
1 ms |
2176 KB |
s1_03.txt |
AC |
1 ms |
2176 KB |
s1_04.txt |
AC |
1 ms |
2176 KB |
s1_05.txt |
AC |
1 ms |
2176 KB |
s1_06.txt |
AC |
1 ms |
2176 KB |
s1_07.txt |
AC |
1 ms |
2176 KB |
s1_08.txt |
AC |
1 ms |
2176 KB |
s1_09.txt |
AC |
1 ms |
2176 KB |
s1_10.txt |
AC |
1 ms |
2176 KB |
s1_11.txt |
AC |
1 ms |
2176 KB |
s1_12.txt |
AC |
1 ms |
2176 KB |
s1_13.txt |
AC |
1 ms |
2176 KB |
s2_14.txt |
AC |
3 ms |
2560 KB |
s2_15.txt |
AC |
3 ms |
2560 KB |
s2_16.txt |
AC |
31 ms |
9472 KB |
s2_17.txt |
AC |
25 ms |
7168 KB |
s2_18.txt |
AC |
44 ms |
9856 KB |
s2_19.txt |
AC |
44 ms |
9856 KB |
s2_20.txt |
AC |
44 ms |
9856 KB |
s2_21.txt |
AC |
44 ms |
9856 KB |
s2_22.txt |
AC |
3 ms |
2560 KB |
s2_23.txt |
AC |
3 ms |
2560 KB |
s2_24.txt |
AC |
3 ms |
2560 KB |
s2_25.txt |
AC |
49 ms |
9856 KB |
s2_26.txt |
AC |
49 ms |
9856 KB |
s2_27.txt |
AC |
49 ms |
9856 KB |
s2_28.txt |
AC |
49 ms |
9856 KB |
s3_29.txt |
AC |
38 ms |
7424 KB |
s3_30.txt |
AC |
49 ms |
4608 KB |
s3_31.txt |
AC |
37 ms |
9600 KB |
s3_32.txt |
AC |
83 ms |
10880 KB |
s3_33.txt |
AC |
37 ms |
7424 KB |
s3_34.txt |
AC |
100 ms |
11392 KB |
s3_35.txt |
AC |
97 ms |
11392 KB |
s3_36.txt |
AC |
96 ms |
11392 KB |
s3_37.txt |
AC |
96 ms |
11392 KB |
s3_38.txt |
AC |
98 ms |
11392 KB |
s3_39.txt |
AC |
98 ms |
11392 KB |
s3_40.txt |
AC |
39 ms |
2944 KB |
s3_41.txt |
AC |
39 ms |
2944 KB |