# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
29558 | 2017-07-20T06:07:29 Z | 김현수(#1240) | Conspiracy (POI11_kon) | C++14 | 2489 ms | 81424 KB |
#include<bits/stdc++.h> #define rf(x) {(x)=0;while(*pp<48)pp++;while(47<*pp)(x)=((x)<<3)+((x)<<1)+(*pp++&15);} using namespace std; const int N = 5005; static unsigned char str[55555555], *pp = str; int n, ms, cc, wh[2*N], cnt[N], ans = 1; bool vis[2*N], adj[N][N], sol[N]; vector<int> st, mem[2]; void dfs (int I, int B) { int X = B * n + I; if(vis[X]) return; vis[X] = true; for(int i=1;i<=n;i++) { if(I != i && adj[I][i] != B) dfs(i, B^1); } st.push_back(X); } void rdfs (int I, int B) { int X = B * n + I; if(vis[X]) return; vis[X] = true; wh[X] = cc; for(int i=1;i<=n;i++) { if(I != i && adj[I][i] == B) rdfs(i, B^1); } } int main() { scanf("%d",&n); for(int i=1;i<2*n/3;i++) { int M, T; scanf("%d",&M); ms += M; for(int j=0;j<M;j++) { scanf("%d",&T); adj[i][T] = 1; } } fflush(stdin); fread(str, 1, 55555555, stdin); for(int i=2*n/3;i<=n;i++) { int M, T; rf(M); ms += M; for(int j=0;j<M;j++) { rf(T); adj[i][T] = 1; } } if(ms == 0 || ms == n*(n-1)) { printf("%d\n",n); return 0; } for(int i=1;i<=n;i++) { dfs(i, 0); dfs(i, 1); } fill(vis+1, vis+1+2*n, 0); for(int i=st.size();i--;) { int T = st[i]; if(vis[T]) continue; cc++; T > n ? rdfs(T-n, 1) : rdfs(T, 0); } for(int i=1;i<=n;i++) { if(wh[i] == wh[i+n]) {puts("0"); return 0;} sol[i] = (wh[i] < wh[i+n]); mem[sol[i]].push_back(i); } for(int i=1;i<=n;i++) { int B = sol[i]^1; for(auto &T : mem[B]) { if(adj[i][T] == B) cnt[i]++; } if(cnt[i] == mem[B].size()) ans++; } for(auto &A : mem[0]) for(auto &B : mem[1]) { if(cnt[A] + cnt[B] == n-1) ans++; } printf("%d\n",ans); }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 80812 KB | Output is correct |
2 | Correct | 0 ms | 80812 KB | Output is correct |
3 | Correct | 0 ms | 80812 KB | Output is correct |
4 | Correct | 0 ms | 80812 KB | Output is correct |
5 | Correct | 0 ms | 80812 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 80812 KB | Output is correct |
2 | Correct | 0 ms | 80812 KB | Output is correct |
3 | Correct | 0 ms | 80812 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 80812 KB | Output is correct |
2 | Correct | 0 ms | 80812 KB | Output is correct |
3 | Correct | 0 ms | 80812 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 80812 KB | Output is correct |
2 | Correct | 6 ms | 80812 KB | Output is correct |
3 | Correct | 3 ms | 80812 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 80812 KB | Output is correct |
2 | Correct | 3 ms | 80812 KB | Output is correct |
3 | Correct | 3 ms | 80812 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 39 ms | 80844 KB | Output is correct |
2 | Correct | 96 ms | 80812 KB | Output is correct |
3 | Correct | 249 ms | 80812 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 39 ms | 80872 KB | Output is correct |
2 | Correct | 179 ms | 80812 KB | Output is correct |
3 | Correct | 416 ms | 80952 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 153 ms | 81136 KB | Output is correct |
2 | Correct | 359 ms | 80968 KB | Output is correct |
3 | Correct | 759 ms | 80952 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 326 ms | 81308 KB | Output is correct |
2 | Correct | 803 ms | 81040 KB | Output is correct |
3 | Correct | 1596 ms | 80952 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1519 ms | 81424 KB | Output is correct |
2 | Correct | 1213 ms | 81132 KB | Output is correct |
3 | Correct | 2489 ms | 80952 KB | Output is correct |
4 | Correct | 2243 ms | 80812 KB | Output is correct |
5 | Correct | 0 ms | 80812 KB | Output is correct |