Submission #98267

#TimeUsernameProblemLanguageResultExecution timeMemory
98267dalgerokMag (COCI16_mag)C++17
12 / 120
386 ms37296 KiB
#include<bits/stdc++.h> using namespace std; const int N = 1e6 + 5; int n, p[N], sz[N], a[N]; vector < pair < int, int > > q; int dsu_get(int v){ return p[v] == v ? v : p[v] = dsu_get(p[v]); } int main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin >> n; for(int i = 1; i <= n; i++){ p[i] = i; sz[i] = 1; } for(int i = 1; i < n; i++){ int x, y; cin >> x >> y; q.push_back(make_pair(x, y)); } int ans = -1; for(int i = 1; i <= n; i++){ cin >> a[i]; if(a[i] == 1){ ans = 1; } } for(auto it : q){ int x = it.first, y = it.second; if(a[x] == 1 && a[y] == 1 && dsu_get(x) != dsu_get(y)){ sz[dsu_get(y)] += sz[dsu_get(x)]; ans = max(ans, sz[dsu_get(y)]); p[dsu_get(x)] = dsu_get(y); } } if(ans != -1){ return cout << "1/" << ans, 0; } ans = 2e9; for(int i = 1; i <= n; i++){ ans = min(ans, a[i]); } cout << ans << "/1"; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...