Submission #50105

# Submission time Handle Problem Language Result Execution time Memory
50105 2018-06-07T14:30:29 Z top34051 Parachute rings (IOI12_rings) C++17
55 / 100
4000 ms 94648 KB
#include<bits/stdc++.h>
using namespace std;

const int maxn = 1e6 + 5;

int n;
vector<int> way[maxn];
vector<int> deg[10];
int cut[maxn];
int sz, cy, vis[maxn];
stack<int> st;
unordered_map<int,int> ok;

void Init(int _n) {
    n = _n;
}

void cycle(int u, int last, int ban) {
    if(vis[u]) {
        while(!st.empty()) {
            int v = st.top(); st.pop();
            sz++;
            if(v==u) break;
        }
        cy++;
        return ;
    }
    vis[u] = 1; st.push(u);
    for(auto v : way[u]) {
        if(v!=ban && v!=last && vis[v]<2) {
            cycle(v,u,ban);
        }
    }
    vis[u] = 2;
    if(!st.empty()) st.pop();
}

int check(int u) {
    memset(cut,0,sizeof(cut));
    for(auto v : way[u]) cut[v]++;
    for(int i=1;i<=n;i++) if(i!=u && way[i].size()-cut[i]>2) return 0;
    sz = cy = 0; memset(vis,0,sizeof(vis));
    for(int i=1;i<=n;i++) if(i!=u && !vis[i]) cycle(i,0,u);
    return cy==0;
}

int CountCritical() {
    for(int i=0;i<=4;i++) deg[i].clear();
    for(int x=1;x<=n;x++) deg[min(4,(int)way[x].size())].push_back(x);
    if(deg[4].size()) {
        ok.clear();
        if(deg[4].size()<=1) {
            for(auto u : deg[4]) if(check(u)) ok[u];
        }
        return ok.size();
    }
    if(deg[3].size()) {
        ok.clear();
        if(deg[3].size()<=3) {
            for(auto u : deg[3]) {
                if(check(u)) ok[u];
                for(auto v : way[u]) if(!ok.count(v) && check(v)) ok[v];
            }
        }
        return ok.size();
    }
    sz = cy = 0; memset(vis,0,sizeof(vis));
    for(int i=1;i<=n;i++) if(!vis[i]) cycle(i,0,0);
    if(cy==0) return n;
    else if(cy==1) return sz;
    else return 0;
}

void Link(int x, int y) {
    x++; y++;
    way[x].push_back(y); way[y].push_back(x);
}
# Verdict Execution time Memory Grader output
1 Correct 27 ms 27768 KB Output is correct
2 Correct 31 ms 31864 KB Output is correct
3 Correct 32 ms 31936 KB Output is correct
4 Correct 25 ms 31936 KB Output is correct
5 Correct 26 ms 31936 KB Output is correct
6 Correct 27 ms 31936 KB Output is correct
7 Correct 21 ms 31936 KB Output is correct
8 Correct 26 ms 31936 KB Output is correct
9 Correct 34 ms 32232 KB Output is correct
10 Correct 32 ms 32232 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 495 ms 46560 KB Output is correct
2 Correct 943 ms 60500 KB Output is correct
3 Correct 882 ms 60500 KB Output is correct
4 Correct 1272 ms 63844 KB Output is correct
5 Correct 1257 ms 64584 KB Output is correct
6 Correct 1208 ms 94648 KB Output is correct
7 Correct 848 ms 94648 KB Output is correct
8 Correct 1694 ms 94648 KB Output is correct
9 Correct 1240 ms 94648 KB Output is correct
10 Correct 928 ms 94648 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 27 ms 27768 KB Output is correct
2 Correct 31 ms 31864 KB Output is correct
3 Correct 32 ms 31936 KB Output is correct
4 Correct 25 ms 31936 KB Output is correct
5 Correct 26 ms 31936 KB Output is correct
6 Correct 27 ms 31936 KB Output is correct
7 Correct 21 ms 31936 KB Output is correct
8 Correct 26 ms 31936 KB Output is correct
9 Correct 34 ms 32232 KB Output is correct
10 Correct 32 ms 32232 KB Output is correct
11 Correct 108 ms 94648 KB Output is correct
12 Correct 104 ms 94648 KB Output is correct
13 Correct 174 ms 94648 KB Output is correct
14 Correct 88 ms 94648 KB Output is correct
15 Correct 127 ms 94648 KB Output is correct
16 Correct 102 ms 94648 KB Output is correct
17 Correct 35 ms 94648 KB Output is correct
18 Correct 51 ms 94648 KB Output is correct
19 Correct 88 ms 94648 KB Output is correct
20 Correct 162 ms 94648 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 27 ms 27768 KB Output is correct
2 Correct 31 ms 31864 KB Output is correct
3 Correct 32 ms 31936 KB Output is correct
4 Correct 25 ms 31936 KB Output is correct
5 Correct 26 ms 31936 KB Output is correct
6 Correct 27 ms 31936 KB Output is correct
7 Correct 21 ms 31936 KB Output is correct
8 Correct 26 ms 31936 KB Output is correct
9 Correct 34 ms 32232 KB Output is correct
10 Correct 32 ms 32232 KB Output is correct
11 Correct 108 ms 94648 KB Output is correct
12 Correct 104 ms 94648 KB Output is correct
13 Correct 174 ms 94648 KB Output is correct
14 Correct 88 ms 94648 KB Output is correct
15 Correct 127 ms 94648 KB Output is correct
16 Correct 102 ms 94648 KB Output is correct
17 Correct 35 ms 94648 KB Output is correct
18 Correct 51 ms 94648 KB Output is correct
19 Correct 88 ms 94648 KB Output is correct
20 Correct 162 ms 94648 KB Output is correct
21 Execution timed out 4017 ms 94648 KB Time limit exceeded
22 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 27 ms 27768 KB Output is correct
2 Correct 31 ms 31864 KB Output is correct
3 Correct 32 ms 31936 KB Output is correct
4 Correct 25 ms 31936 KB Output is correct
5 Correct 26 ms 31936 KB Output is correct
6 Correct 27 ms 31936 KB Output is correct
7 Correct 21 ms 31936 KB Output is correct
8 Correct 26 ms 31936 KB Output is correct
9 Correct 34 ms 32232 KB Output is correct
10 Correct 32 ms 32232 KB Output is correct
11 Correct 495 ms 46560 KB Output is correct
12 Correct 943 ms 60500 KB Output is correct
13 Correct 882 ms 60500 KB Output is correct
14 Correct 1272 ms 63844 KB Output is correct
15 Correct 1257 ms 64584 KB Output is correct
16 Correct 1208 ms 94648 KB Output is correct
17 Correct 848 ms 94648 KB Output is correct
18 Correct 1694 ms 94648 KB Output is correct
19 Correct 1240 ms 94648 KB Output is correct
20 Correct 928 ms 94648 KB Output is correct
21 Correct 108 ms 94648 KB Output is correct
22 Correct 104 ms 94648 KB Output is correct
23 Correct 174 ms 94648 KB Output is correct
24 Correct 88 ms 94648 KB Output is correct
25 Correct 127 ms 94648 KB Output is correct
26 Correct 102 ms 94648 KB Output is correct
27 Correct 35 ms 94648 KB Output is correct
28 Correct 51 ms 94648 KB Output is correct
29 Correct 88 ms 94648 KB Output is correct
30 Correct 162 ms 94648 KB Output is correct
31 Execution timed out 4017 ms 94648 KB Time limit exceeded
32 Halted 0 ms 0 KB -