제출 #652112

#제출 시각아이디문제언어결과실행 시간메모리
652112mychecksedad식물 비교 (IOI20_plants)C++17
0 / 100
4090 ms23220 KiB
#include <bits/stdc++.h> using namespace std; const int N = 1e6; struct Dsu { vector<int> s, p; Dsu(int n){ s.resize(n+1, 1); p.resize(n+1); for(int i = 0; i <= n; ++i) p[i] = i; } int find(int v){ if(p[v] == v) return v; return (p[v] = find(p[v])); } void merge(int a, int b){ a = find(a); b = find(b); if(a != b){ if(s[a] > s[b]){ swap(a, b); } s[b] += s[a]; p[a] = b; } } } d(N), d1(N); vector<int> v; int nn; void init(int k, vector<int> r){ int n = r.size(); nn =n ; v = r; for(int i = 0; i < n; ++i){ if(r[i] == 1){ d.merge(i, (i + 1)%n); }else{ d1.merge(i, (i + 1)%n); } } } int compare_plants(int x, int y){ if(nn==4){ for(int i = 0; i < 1e9; ++i) cout << "f" << endl; } if(d.find(x) == d.find(y)){ return 1; }else if(d1.find(x) == d1.find(y)){ return -1; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...