제출 #992496

#제출 시각아이디문제언어결과실행 시간메모리
992496MuntherCarrotSimurgh (IOI17_simurgh)C++14
0 / 100
0 ms348 KiB
#include <bits/stdc++.h> #include "simurgh.h" using namespace std; #define ll long long #define all(x) x.begin(), x.end() struct dsu{ vector<int> p, sz; dsu(int n){ p.resize(n); iota(all(p), 0); sz.resize(n, 1); } int find(int x){ return x == p[x] ? x : p[x] = find(p[x]); } void merge(int a, int b){ a = find(a); b = find(b); p[b] = a; sz[a] += sz[b]; } int size(){ return *max_element(all(sz)); } }; // int count_common_roads(const std::vector<int>& r){ // for(int i : r) cout << i << ' '; // cout << endl; // int x; cin >> x; return x; // } vector<int> find_roads(int n, vector<int> u, vector<int> v){ int m = u.size(); vector<int> vec(m); iota(all(vec), 0); while(true){ for(int i = 0; i < m; i++){ swap(vec[i], vec[rand() % m]); } dsu A(n); vector<int> V; for(int i = 0; i < m; i++){ if(A.find(v[i]) == A.find(u[i])) continue; V.push_back(i); } if(count_common_roads(V) == n - 1){ return V; } } } // int main(){ // ios_base::sync_with_stdio(0); cin.tie(0), cout.tie(0); // find_roads(4, {0, 0, 0, 1, 1, 2}, {1, 2, 3, 2, 3, 3}); // 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...