Submission #994204
Source Code Expand
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include <set>
#include <bitset>
#include <map>
#include <deque>
#include <string>
#include <algorithm>
#include <numeric>
#include <cstdio>
#include <cassert>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <cmath>
#define pb push_back
#define pbk pop_back
#define mp make_pair
#define fs first
#define sc second
#define all(x) (x).begin(), (x).end()
#define foreach(i, a) for (__typeof((a).begin()) i = (a).begin(); i != (a).end(); ++i)
#define len(a) ((int) (a).size())
#ifdef CUTEBMAING
#define eprintf(...) fprintf(stderr, __VA_ARGS__)
#else
#define eprintf(...) 42
#endif
using namespace std;
typedef long long int64;
typedef long double ld;
typedef unsigned long long lint;
const int inf = (1 << 30) - 1;
const int64 linf = (1ll << 62) - 1;
const int N = 1e6 + 100;
int n, m;
int a[N];
int64 sum[N];
int64 dp[N];
int64 rmq[N * 4 + 100];
int wh[N];
void make_rmq(int i, int l, int r) {
rmq[i] = -linf;
if (l == r) {
return void (wh[l] = i);
}
make_rmq(i * 2, l, (l + r) / 2);
make_rmq(i * 2 + 1, (l + r) / 2 + 1, r);
}
inline int64 getValue(int i, int ll, int rr, int l, int r) {
if (ll > r || rr < l) {
return -linf;
}
if (l <= ll && rr <= r) {
return rmq[i];
}
return max(getValue(i * 2, ll, (ll + rr) / 2, l, r), getValue(i * 2 + 1, (ll + rr) / 2 + 1, rr, l, r));
}
inline void update(int, int, int, int i, int value) {
i = wh[i];
rmq[i] = value;
for (i >>= 1; i; i >>= 1) {
rmq[i] = max(rmq[i * 2], rmq[i * 2 + 1]);
}
}
int main() {
#ifdef XCODE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
cin >> n;
for (int i = 0; i < n - 1; i++) {
scanf("%d", &a[i]);
}
cin >> m;
assert(m == 1);
for (int i = 0; i < m; i++) {
cin >> a[n - 1];
dp[n] = 0;
make_rmq(1, 0, n - 1);
sum[0] = a[0];
for (int i = 1; i < n; i++) {
sum[i] = sum[i - 1] + a[i];
}
update(1, 0, n - 1, n - 1, a[n - 1] - sum[n - 2] - dp[n - 1]);
for (int i = n - 2; i >= 1; i--) {
dp[i] = getValue(1, 0, n - 1, i + 1, n - 1) + sum[i];
update(1, 0, n - 1, i, a[i] - sum[i - 1] - dp[i]);
}
cout << dp[1] + a[0] - a[1] << endl;
}
return 0;
}
Submission Info
Submission Time
2016-11-26 14:42:04+0900
Task
H - Tokaido
User
darinflar
Language
C++14 (GCC 5.4.1)
Score
700
Code Size
2512 Byte
Status
RE
Exec Time
129 ms
Memory
9088 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:91:27: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d", &a[i]);
^
Judge Result
Set Name
sample
dataset1
dataset2
Score / Max Score
0 / 0
700 / 700
0 / 900
Status
Set Name
Test Cases
sample
sample-01.txt, sample-02.txt
dataset1
sample-01.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt
dataset2
sample-01.txt, sample-02.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, 02-14.txt, 02-15.txt, 02-16.txt
Case Name
Status
Exec Time
Memory
01-01.txt
AC
51 ms
9088 KB
01-02.txt
AC
3 ms
256 KB
01-03.txt
AC
3 ms
384 KB
01-04.txt
AC
26 ms
4480 KB
01-05.txt
AC
51 ms
9088 KB
01-06.txt
AC
52 ms
9088 KB
01-07.txt
AC
16 ms
2688 KB
01-08.txt
AC
52 ms
8960 KB
01-09.txt
AC
52 ms
9088 KB
01-10.txt
AC
3 ms
256 KB
01-11.txt
AC
12 ms
2176 KB
01-12.txt
AC
50 ms
8832 KB
01-13.txt
AC
52 ms
9088 KB
01-14.txt
AC
52 ms
8960 KB
01-15.txt
AC
52 ms
9088 KB
01-16.txt
AC
52 ms
9088 KB
01-17.txt
AC
52 ms
9088 KB
01-18.txt
AC
52 ms
9088 KB
01-19.txt
AC
52 ms
9088 KB
02-01.txt
RE
113 ms
384 KB
02-02.txt
RE
126 ms
1024 KB
02-03.txt
RE
127 ms
1024 KB
02-04.txt
RE
126 ms
1024 KB
02-05.txt
RE
112 ms
256 KB
02-06.txt
RE
127 ms
1024 KB
02-07.txt
RE
127 ms
1024 KB
02-08.txt
RE
112 ms
256 KB
02-09.txt
RE
111 ms
384 KB
02-10.txt
RE
118 ms
640 KB
02-11.txt
RE
129 ms
1024 KB
02-12.txt
RE
127 ms
1024 KB
02-13.txt
RE
126 ms
1024 KB
02-14.txt
RE
126 ms
1024 KB
02-15.txt
RE
126 ms
1024 KB
02-16.txt
RE
126 ms
1024 KB
sample-01.txt
AC
3 ms
256 KB
sample-02.txt
RE
111 ms
256 KB