# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
204387 | 2020-02-25T15:04:49 Z | mahmoudbadawy | Flood (IOI07_flood) | C++17 | 313 ms | 16528 KB |
#include <bits/stdc++.h> #define F first #define S second using namespace std; const int N=1e5+5; int n,m; pair<int,int> arr[N]; int sorted[N],vis[N]; pair<int,int> adj[N][4]; vector<int> ans; bool cmp(int x,int y) { return arr[x]<arr[y]; } int go(int x,int d) { if(vis[x]) return x; vis[x]=1; for(int i=0;i<4;i++) { int tod=(d-i+1+4)%4; int to=adj[x][tod].F; if(to==-1) continue; int ed=adj[x][tod].S; adj[x][tod]={-1,-1}; adj[to][(tod+2)%4]={-1,-1}; int y=go(to,tod); if(y==-1) { ans.push_back(ed); continue; } if(y!=x) { vis[x]=0; return y; } } vis[x]=0; return -1; } int main() { scanf("%d",&n); for(int i=0;i<n;i++) { sorted[i]=i; scanf("%d %d",&arr[i].F,&arr[i].S); for(int j=0;j<4;j++) adj[i][j]={-1,-1}; } sort(sorted,sorted+n,cmp); scanf("%d",&m); for(int i=1;i<=m;i++) { int x,y; scanf("%d %d",&x,&y); x--; y--; if(arr[x].F==arr[y].F) { if(arr[x].S>arr[y].S) swap(x,y); adj[x][0]={y,i}; adj[y][2]={x,i}; } else { if(arr[x].F>arr[y].F) swap(x,y); adj[x][1]={y,i}; adj[y][3]={x,i}; } } for(int i=0;i<n;i++) { go(sorted[i],0); } cout << ans.size() << endl; for(int i:ans) cout << i << endl; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 376 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 376 KB | Output is correct |
2 | Correct | 6 ms | 376 KB | Output is correct |
3 | Correct | 5 ms | 376 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 376 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 380 KB | Output is correct |
2 | Correct | 6 ms | 376 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 376 KB | Output is correct |
2 | Correct | 5 ms | 376 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 376 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 376 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 376 KB | Output is correct |
2 | Correct | 6 ms | 376 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 380 KB | Output is correct |
2 | Correct | 6 ms | 376 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 43 ms | 2168 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 124 ms | 8440 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 68 ms | 6776 KB | Output is correct |
2 | Correct | 214 ms | 8820 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 212 ms | 8560 KB | Output is correct |
2 | Correct | 227 ms | 8820 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 215 ms | 8692 KB | Output is correct |
2 | Correct | 313 ms | 16528 KB | Output is correct |