# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
234555 | 2020-05-24T13:17:59 Z | doowey | Matching (COCI20_matching) | C++14 | 6 ms | 2688 KB |
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; typedef pair<int, int> pii; #define fi first #define se second #define mp make_pair #define fastIO ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); const int N = (int)1e5 + 100; vector<int> T[N]; vector<pii> sol; map<int,int> xc,yc; vector<int> ord; bool vis[N]; void dfs(int u){ vis[u]=true; ord.push_back(u); for(auto x : T[u]){ if(!vis[x])dfs(x); } } int main(){ fastIO; int n; cin >> n; int x, y; for(int i = 1 ; i <= n; i ++ ){ cin >> x >> y; if(xc[x] == 0){ xc[x]=i; } else{ T[i].push_back(xc[x]); T[xc[x]].push_back(i); } if(yc[y] == 0){ yc[y]=i; } else{ T[i].push_back(yc[y]); T[yc[y]].push_back(i); } } vector<pii> sol; for(int i = 1; i <= n; i ++ ){ if(!vis[i]){ ord.clear(); dfs(i); if((int)ord.size() % 2 == 1){ cout << "NE\n"; return 0; } else{ for(int i = 0 ; i < ord.size() ; i += 2){ sol.push_back(mp(ord[i],ord[i+1])); } } } } cout << "DA\n"; for(auto x : sol) cout << x.fi << " " << x.se << "\n"; return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 6 ms | 2688 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 6 ms | 2688 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 6 ms | 2688 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 6 ms | 2688 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 6 ms | 2688 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |