Submission #83302

#TimeUsernameProblemLanguageResultExecution timeMemory
83302thiago4532Pictionary (COCI18_pictionary)C++17
0 / 140
113 ms988 KiB
#include <bits/stdc++.h> #define div divisores using namespace std; const int maxn = 1010; int pai[maxn], peso[maxn]; int n, m, q; int gcd(int a, int b){ return b ? gcd(b, a%b) : a; } void reset(){ for(int i=1;i<=n;i++) pai[i] = i, peso[i] = 0; } int find(int u){ return (pai[u] == u ? u : pai[u] = find(pai[u])); } inline void join(int a, int b){ a = find(a); b = find(b); if(peso[a] == peso[b]) peso[b]++; else if(peso[a] > peso[b]) swap(a, b); pai[a] = b; } int main(){ ios::sync_with_stdio(false), cin.tie(0); cin >> n >> q >> m; for(int i=1;i<=q;i++){ int a, b; cin >> a >> b; reset(); int k; for(k=m;k>=1;k--){ for(int i=2;i*k<=n;i++) if(find(k) != find(i*k)) join(k, i*k); if(find(a) == find(b)) break; } cout << m - k + 1 << "\n"; } 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...