# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
895764 | 2023-12-30T18:56:15 Z | abcvuitunggio | Flood (IOI07_flood) | C++17 | 2 ms | 348 KB |
#include <bits/stdc++.h> using namespace std; int n,w,x[100001],y[100001],a[200001],b[200001],dx[4]={1,0,-1,0},dy[4]={0,1,0,-1},p[400001],l[100001]; vector <int> safe; int f(int i){ return (l[i]==i?i:l[i]=f(l[i])); } int main(){ ios_base::sync_with_stdio(NULL);cin.tie(nullptr); freopen("flood.inp","r",stdin); freopen("flood.out","w",stdout); cin >> n; vector <int> nxt[n+1][4],ve[n+1]; vector <pair <int, int>> q[n+5]; iota(l,l+n+1,0); for (int i=1;i<=n;i++) cin >> x[i] >> y[i]; cin >> w; for (int i=1;i<=w;i++){ cin >> a[i] >> b[i]; l[f(a[i])]=f(b[i]); for (int j=0;j<4;j++) if (abs(dx[j])+abs(x[a[i]]+dx[j]-x[b[i]])==abs(x[a[i]]-x[b[i]])&&abs(dy[j])+abs(y[a[i]]+dy[j]-y[b[i]])==abs(y[a[i]]-y[b[i]])){ nxt[a[i]][j]={i}; nxt[b[i]][(j+2)%4]={i+w}; break; } } for (int i=1;i<=n;i++) ve[f(i)].push_back(i); for (int i=1;i<=n;i++){ if (ve[i].empty()) continue; int mx=0; for (int j:ve[i]) if (!mx||x[mx]>x[j]||(x[mx]==x[j]&&y[mx]<y[j])) mx=j; for (int i=0;i<4;i++) if (!nxt[mx][(i+3)%4].empty()){ q[1].push_back({nxt[mx][(i+3)%4][0],(i+3)%4}); break; } ve[i].clear(); } for (int i=1;i<n+5;i++) while (!q[i].empty()){ auto [u,d]=q[i].back(); q[i].pop_back(); if (p[u]) continue; p[u]=i; q[i+1].push_back({(u>w?u-w:u+w),(d+2)%4}); int cur=(u>w?a[u-w]:b[u]); for (int j=0;j<4;j++) if (!nxt[cur][(d+j+3)%4].empty()){ int v=nxt[cur][(d+j+3)%4][0]; nxt[cur][(d+j+3)%4].clear(); q[i].push_back({v,(d+j+3)%4}); break; } } for (int i=1;i<=w;i++) if (p[i]==p[i+w]) safe.push_back(i); cout << safe.size() << '\n'; for (int i:safe) cout << i << '\n'; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 344 KB | Unexpected end of file - int32 expected |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 344 KB | Unexpected end of file - int32 expected |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 348 KB | Unexpected end of file - int32 expected |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 348 KB | Unexpected end of file - int32 expected |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 348 KB | Unexpected end of file - int32 expected |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 348 KB | Unexpected end of file - int32 expected |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 344 KB | Unexpected end of file - int32 expected |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 348 KB | Unexpected end of file - int32 expected |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 348 KB | Unexpected end of file - int32 expected |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 344 KB | Unexpected end of file - int32 expected |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 344 KB | Unexpected end of file - int32 expected |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 348 KB | Unexpected end of file - int32 expected |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 344 KB | Unexpected end of file - int32 expected |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 348 KB | Unexpected end of file - int32 expected |
2 | Halted | 0 ms | 0 KB | - |