Submission #1026687

#TimeUsernameProblemLanguageResultExecution timeMemory
1026687vjudge1Sirni (COCI17_sirni)C++17
42 / 140
670 ms786432 KiB
#include <bits/stdc++.h> using namespace std; bool cmp(int a, int b) { return a>b; } vector<int>p, sz; void make_set(int n) { p.resize(n); sz.resize(n); for(int i=0; i<n; i++) { p[i]=i; sz[i]=1; } } int Find(int i) { if(p[i]==i) return i; return p[i]=Find(p[i]); } bool Union(int a, int b) { a=Find(a), b=Find(b); if(a!=b) { if(sz[a]>sz[b]) swap(a, b); p[a]=b; sz[b]+=sz[a]; return 1; } return 0; } int main() { int n; cin>>n; make_set(n); long long int a[n]; long long rez=0; vector<pair<int, pair<int, int>>>v; for(int i=0; i<n; i++) { cin>>a[i]; } sort(a, a+n, cmp); for(int i=0; i<n; i++) { for(int j=i+1; j<n; j++) { v.push_back(make_pair(a[i]%a[j], make_pair(i, j))); } } sort(v.begin(), v.end()); int edges=0; for(int i=0; i<v.size(); i++) { if(edges==n-1) break; if(Union(v[i].second.first, v[i].second.second)) { rez+=v[i].first; edges++; } } cout<<rez; return 0; }

Compilation message (stderr)

sirni.cpp: In function 'int main()':
sirni.cpp:62:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, std::pair<int, int> > >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   62 |     for(int i=0; i<v.size(); i++)
      |                  ~^~~~~~~~~
#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...