Submission #4032599


Source Code Expand

#include <iostream>
#include <algorithm>

using namespace std;

#define REP(i, n) for (int i = 0; i < (n); ++i)
#define REPR(i, n) for (int i = (n-1); i >= 0; --i)

const int MAX = 5e5+10;
int N, D, Q;
int d[MAX];
int pos[MAX];
int rev[MAX];
bool ans[MAX];

inline int move(int p, int d) {
    return min(p, abs(p-d));
}

inline int moveRev(int p, int d) {
    if (d/2 >= p) return p;
    return p+d;
}

int main() {
    cin >> N >> D;
    pos[0] = D;
    REP (i, N) {
        cin >> d[i];
        pos[i+1] = move(pos[i], d[i]);
    }

    rev[N] = 1;
    REPR (i, N) {
        rev[i] = moveRev(rev[i+1], d[i]);
    }

    REP (i, N) {
        ans[i] = pos[i] >= rev[i+1];
    }

    cin >> Q;
    REP (q, Q) {
        int i;
        cin >> i;
        cout << ((ans[i-1])?"YES":"NO") << endl;
    }
}

Submission Info

Submission Time
Task E - Alice in linear land
User tnyo43
Language C++14 (GCC 5.4.1)
Score 900
Code Size 849 Byte
Status AC
Exec Time 1197 ms
Memory 8320 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 900 / 900
Status
AC × 3
AC × 14
Set Name Test Cases
Sample 00-00.txt, 00-01.txt, 00-02.txt
All 00-00.txt, 00-01.txt, 00-02.txt, 01-00.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
Case Name Status Exec Time Memory
00-00.txt AC 2 ms 4352 KB
00-01.txt AC 2 ms 4352 KB
00-02.txt AC 2 ms 4352 KB
01-00.txt AC 2 ms 4352 KB
01-01.txt AC 2 ms 4352 KB
01-02.txt AC 1197 ms 8192 KB
01-03.txt AC 1186 ms 8192 KB
01-04.txt AC 1182 ms 8192 KB
01-05.txt AC 1150 ms 8192 KB
01-06.txt AC 1165 ms 8320 KB
01-07.txt AC 1176 ms 8320 KB
01-08.txt AC 1176 ms 8064 KB
01-09.txt AC 1162 ms 8064 KB
01-10.txt AC 1180 ms 8064 KB