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
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
AC × 1
RE × 1
AC × 20
AC × 20
RE × 17
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