답안 #365408

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
365408 2021-02-11T15:39:37 Z valerikk 식물 비교 (IOI20_plants) C++17
0 / 100
1 ms 396 KB
#include <bits/stdc++.h>

using namespace std;

int k, n;
vector<int> r;
vector<int> h;

void build_h() {
    h = vector<int>(n, -1);
    for (int t = n - 1; t >= 0; t--) {
        int pos = -1;
        
        for (int i = n - 1; i >= 0; i--) {
            if (r[i] == 0 && (pos == -1 || (pos - i + n) % n < k))
                pos = i;
        }

        for (int i = n - 1; i >= 0; i--) {
            if (r[i] == 0 && (pos == -1 || (pos - i + n) % n < k))
                pos = i;
        } 
        
        assert(~pos);

        h[pos] = t;
        for (int i = 1; i < k; i++) 
            r[(pos - i + n) % n]--;
    }
}

void init(int k_, vector<int> r_) {
    n = r_.size();
    k = k_;
    r = r_;

    build_h();
}

int compare_plants(int x, int y) {
    return h[x] > h[y] ? 1 : -1;
}

#ifndef EVAL
void test() {
    int n, k, q;
    cin >> n >> k >> q;
    vector<int> r(n);
    for (int i = 0; i < n; i++) 
        cin >> r[i];
    
    init(k, r);
  
    for (int i = 0; i < q; i++) {
        int x, y;
        cin >> x >> y;
        cout << compare_plants(x, y) << "\n";
    }
}

int main() {
    freopen("D:/cp/oi/ioi/2020/input.txt", "r", stdin);
    ios::sync_with_stdio(false);
    cin.tie(0);

    test();

    return 0;
}
#endif

# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Incorrect 0 ms 364 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Incorrect 0 ms 364 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Incorrect 0 ms 364 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 364 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Incorrect 0 ms 364 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 364 KB Output is correct
2 Incorrect 1 ms 396 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Incorrect 0 ms 364 KB Output isn't correct
3 Halted 0 ms 0 KB -