Submission #307229

# Submission time Handle Problem Language Result Execution time Memory
307229 2020-09-27T12:08:58 Z VEGAnn Comparing Plants (IOI20_plants) C++14
14 / 100
694 ms 116728 KB
#include "plants.h"
#include <bits/stdc++.h>
#define PB push_back
#define sz(x) ((int)x.size())
using namespace std;
const int N = 5010;
const int oo = 2e9;
queue<int> q;
vector<int> vc, g[N];
int per[N], mrk[N], tt = 0;
bool sml[N][N];

void init(int k, vector<int> r) {
    int n = sz(r);

    for (int it = n - 1; it >= 0; it--){
        vc.clear();

        for (int i = 0; i < n; i++)
            if (r[i] == 0)
                vc.PB(i);

        int cand = -1;

        for (int it = 0; it < sz(vc); it++){
            int cur = vc[it];
            int pre = vc[(it + sz(vc) - 1) % sz(vc)];

            if (pre < cur){
                if (pre - cur + n < k){
                    cand = cur;
                    break;
                }
            } else {
                if (pre - cur < k){
                    cand = cur;
                    break;
                }
            }
        }

        per[cand] = it;
        r[cand] = oo;

        for (int i = 1, loc = cand; i < k; i++){
            loc = (loc + n - 1) % n;

            r[loc]--;

            if (r[loc] < oo / 2)
                g[cand].PB(loc);
        }

        for (int i = 1, loc = cand; i < k; i++){
            loc = (loc + 1) % n;

            if (r[loc] < oo / 2)
                g[cand].PB(loc);
        }
    }

//    for (int i = 0; i < n; i++){
//        tt++;
//
//        q.push(i);
//        mrk[i] = tt;
//
//        while (sz(q)){
//            int v = q.front(); q.pop();
//
//            sml[i][v] = 1;
//
//            for (int u : g[v])
//                if (mrk[u] < tt){
//                    mrk[u] = tt;
//                    q.push(u);
//                }
//        }
//    }

    return;
}

int compare_plants(int x, int y) {
//    if (sml[x][y]) return 1;
//    if (sml[y][x]) return -1;
//    return 0;
    return (per[x] > per[y] ? 1 : -1);
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Runtime error 4 ms 896 KB Execution killed with signal 11 (could be triggered by violating memory limits)
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 1 ms 384 KB Output is correct
5 Correct 1 ms 512 KB Output is correct
6 Correct 24 ms 5120 KB Output is correct
7 Correct 594 ms 96376 KB Output is correct
8 Correct 2 ms 512 KB Output is correct
9 Correct 24 ms 5120 KB Output is correct
10 Correct 585 ms 96552 KB Output is correct
11 Correct 385 ms 64760 KB Output is correct
12 Correct 398 ms 65304 KB Output is correct
13 Correct 694 ms 116728 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 1 ms 384 KB Output is correct
5 Correct 1 ms 512 KB Output is correct
6 Correct 24 ms 5120 KB Output is correct
7 Correct 594 ms 96376 KB Output is correct
8 Correct 2 ms 512 KB Output is correct
9 Correct 24 ms 5120 KB Output is correct
10 Correct 585 ms 96552 KB Output is correct
11 Correct 385 ms 64760 KB Output is correct
12 Correct 398 ms 65304 KB Output is correct
13 Correct 694 ms 116728 KB Output is correct
14 Runtime error 60 ms 5880 KB Execution killed with signal 11 (could be triggered by violating memory limits)
15 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 5 ms 896 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
3 Runtime error 5 ms 896 KB Execution killed with signal 11 (could be triggered by violating memory limits)
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
3 Runtime error 5 ms 1024 KB Execution killed with signal 11 (could be triggered by violating memory limits)
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Runtime error 4 ms 896 KB Execution killed with signal 11 (could be triggered by violating memory limits)
5 Halted 0 ms 0 KB -