Submission #582331

#TimeUsernameProblemLanguageResultExecution timeMemory
582331mosiashvililukaSirni (COCI17_sirni)C++14
98 / 140
1540 ms786432 KiB
#include<bits/stdc++.h> using namespace std; long long a,b,c,d,e,i,j,ii,jj,zx,xc,f[100009],pas,msh[100009],zm[100009],fx[10000009]; vector <pair <long long, pair <long long, long long> > > P; long long fnd(long long q){ if(msh[q]==0) return q; else return msh[q]=fnd(msh[q]); } void mrg(long long q, long long w){ q=fnd(q);w=fnd(w); if(q==w) return; pas+=e; if(zm[q]<zm[w]) swap(q,w); msh[w]=q; if(zm[q]==zm[w]) zm[q]++; } int main(){ ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0); cin>>a;map <int, int> ma; zx=0; for(i=1; i<=a; i++){ cin>>c; if(ma[c]!=-1){ ma[c]=-1; zx++;f[zx]=c; } } a=zx; for(i=1; i<=a; i++){ //cin>>f[i]; fx[f[i]]=i; } for(i=10000000; i>=0; i--){ if(fx[i]==0) fx[i]=fx[i+1]; } for(i=1; i<=a; i++){ for(j=f[i]; j<=10000000; j+=f[i]){ if(j==f[i]) c=fx[j+1]; else c=fx[j]; if(c==0||f[c]-j>=f[i]) continue; zx=(f[c]-j)%f[i]; P.push_back({zx,{i,c}}); } } sort(P.begin(),P.end()); for(ii=0; ii<P.size(); ii++){ e=P[ii].first;c=P[ii].second.first;d=P[ii].second.second; mrg(c,d); } cout<<pas; return 0; }

Compilation message (stderr)

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