답안 #1061908

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1061908 2024-08-16T15:08:13 Z vjudge1 식물 비교 (IOI20_plants) C++17
11 / 100
4000 ms 2097152 KB
#include "plants.h"

#include <bits/stdc++.h>

using namespace std;

using vi = vector<int>;

vector<vi> L;

vi dfs(int u0) {
    int n = int(L.size());
    vi viz(n, 0);

    function<void(int)> dfs0 = [&](int u) {
        if(viz[u]) return;
        viz[u] = 1;
        for(auto it : L[u]) {
            if(it != u)
                dfs0(it);
        }
    };
    dfs0(u0);
    return viz;
}

vector<vi> Reach;

void init(int k, vi r) {
    int n = int(r.size());
    vi active(n, 1);
    L.resize(n);

    set<int> Zero;
    for(int i = 0; i < n; ++i)
        if(!r[i]) Zero.insert(i);

    for(int i = 0; i < n; ++i) {
        int v = 0;
        for(auto it : Zero) {
            int ok = 1;
            for(int j = 1; j < k; ++j) {
                int p = (it - j + n) % n;
                if(active[p] && !r[p]) {
                    ok = 0;
                    break;
                }
            }
            if(ok) {
                v = it;
                break;
            }
        }
        Zero.erase(v);
        active[v] = 0;
        for(int j = 1; j < k; ++j) {
            int p = (v - j + n) % n;
            if(active[p]) {
                --r[p];
                if(!r[p]) {
                    L[v].push_back(p);
                    Zero.insert(p);
                }
            }
            ///^ oare si fara !r[p] e ok rationamentul
            int p2 = (v + j) % n;
            if(active[p2]) {
                L[v].push_back(p2); /// nu puteau fi popite
            }
        }
    }
    for(int i = 0; i < n; ++i) {
        sort(L[i].begin(), L[i].end());
        L[i].resize(unique(L[i].begin(), L[i].end()) - L[i].begin());
    }
    for(int i = 0; i < n; ++i)
        Reach.push_back(dfs(i));
}


int compare_plants(int x, int y) {
    if(Reach[x][y]) return 1;
    if(Reach[y][x]) return -1;
	return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 29 ms 4192 KB Output is correct
7 Correct 613 ms 1573196 KB Output is correct
8 Runtime error 792 ms 2097152 KB Execution killed with signal 9
9 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 352 KB Output is correct
2 Correct 0 ms 356 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 352 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 514 ms 6816 KB Output is correct
7 Execution timed out 4070 ms 60388 KB Time limit exceeded
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 352 KB Output is correct
2 Correct 0 ms 356 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 352 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 514 ms 6816 KB Output is correct
7 Execution timed out 4070 ms 60388 KB Time limit exceeded
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 68 ms 20552 KB Output is correct
4 Execution timed out 4049 ms 16016 KB Time limit exceeded
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 2 ms 348 KB Output is correct
7 Correct 9 ms 1624 KB Output is correct
8 Correct 14 ms 1880 KB Output is correct
9 Correct 10 ms 1628 KB Output is correct
10 Correct 15 ms 1828 KB Output is correct
11 Correct 8 ms 1628 KB Output is correct
12 Correct 10 ms 1748 KB Output is correct
13 Correct 44 ms 1884 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Correct 65 ms 4644 KB Output is correct
6 Runtime error 3896 ms 2097152 KB Execution killed with signal 9
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 29 ms 4192 KB Output is correct
7 Correct 613 ms 1573196 KB Output is correct
8 Runtime error 792 ms 2097152 KB Execution killed with signal 9
9 Halted 0 ms 0 KB -