제출 #171910

#제출 시각아이디문제언어결과실행 시간메모리
171910rzbtSirni (COCI17_sirni)C++14
140 / 140
4006 ms537268 KiB
#include <bits/stdc++.h> #define mp make_pair #define pb push_back #define F first #define S second #define all(x) x.begin(),x.end() #define MAXN 100005 #define MAXB 10000007 typedef long long ll; using namespace std; int n; int niz[MAXN]; vector< pair<int,int> > s; vector<pair<int,int> > grane[MAXB]; int cale[MAXN],vel[MAXN]; int koren(int p){ while(p!=cale[p]){ cale[p]=cale[cale[p]]; p=cale[p]; } return p; } ll res=0; void spoji(int a,int b,int c){ a=koren(a); b=koren(b); if(a==b)return; res+=c; if(vel[a]<vel[b])swap(a,b); cale[b]=a; vel[a]+=vel[b]; } int main() { for(int i=0;i<MAXN;i++){ cale[i]=i; vel[i]=1; } scanf("%d", &n); for(int i=1;i<=n;i++){ scanf("%d",niz+i); } sort(niz+1,niz+n+1); for(int i=1;i<=n;i++) if(niz[i]!=niz[i+1]) s.pb(mp(niz[i],i)); for(int i=1;i<=n;i++){ if(niz[i]==niz[i+1]){ grane[0].pb(mp(i,i+1)); continue; } for(int j=niz[i];j<MAXB;j+=niz[i]){ auto a=lower_bound(all(s),mp(j+(j==niz[i]?1:0),0)); if(a==s.end())break; while(j+niz[i]<=a->F)j+=niz[i]; grane[a->F-j].pb(mp(i,a->second)); } } for(int i=0;i<MAXB;i++){ for(auto x:grane[i]){ spoji(x.F,x.S,i); } } printf("%lld",res); return 0; }

컴파일 시 표준 에러 (stderr) 메시지

sirni.cpp: In function 'int main()':
sirni.cpp:47:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &n);
     ~~~~~^~~~~~~~~~
sirni.cpp:49:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d",niz+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...