제출 #782070

#제출 시각아이디문제언어결과실행 시간메모리
782070Ahmed57Sirni (COCI17_sirni)C++17
140 / 140
3144 ms559996 KiB
//#pragma GCC optimize("Ofast,O3,unroll-loops") //#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #include<bits/stdc++.h> using namespace std; //DSU int mn = 100001; int pr[100001]; int gs[100001]; int findleader(int x){ if(pr[x]==x){ return x; } return pr[x] = findleader(pr[x]); } bool mergegroup(int x,int y){ int led1 = findleader(x); int led2 = findleader(y); if(led1==led2)return 0; if(gs[led1]>gs[led2]){ pr[led2]=led1; gs[led1]+=gs[led2]; }else{ pr[led1]=led2; gs[led2]+=gs[led1]; } return 1; } vector<pair<int,int>> adj[10000001]; int main(){ ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); int n; cin>>n; set<int> s; int ma = 0; for(int i = 0;i<n;i++){ int x;cin>>x; s.insert(x); ma = max(ma,x); } assert(ma<=1e7); vector<int> arr; for(auto i:s)arr.push_back(i); n = arr.size(); for(int i = 0;i<n;i++)pr[i] = i , gs[i] = 1; for(int i = 0;i<n;i++){ int j = i+1; for(int e = arr[i];e<=ma;e+=arr[i]){ while(j<n&&arr[j]<e)j++; if(j<n)adj[arr[j]%arr[i]].push_back({i,j}); j++; } } long long all = 0; for(int i = 0;i<=1e7;i++){ for(int j = 0;j<adj[i].size();j++){ if(mergegroup(adj[i][j].first,adj[i][j].second))all+=i; } } cout<<all<<"\n"; return 0; }

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

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