제출 #1057679

#제출 시각아이디문제언어결과실행 시간메모리
1057679vjudge1Sirni (COCI17_sirni)C++17
0 / 140
800 ms104192 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define int long long #define fi first #define se second const ll mod=1e9+7; ll n,p[100005],ketqua; int pa[100005]; //map<pair<int,int>,int> siuu; int find_pa(int u) { if (pa[u]==u) return u; return pa[u]=find_pa(pa[u]); } void Merge(int u,int v,int x) { u=find_pa(u); v=find_pa(v); if (v==u) return; ketqua+=x; pa[u]=v; } vector<pair<int,int>> vec; vector<pair<int,pair<int,int>>> edge; main() { ios_base::sync_with_stdio(0); cin.tie(0), cout.tie(0); cin>>n; for (int i=1;i<=n;++i) { cin>>p[i]; } sort(p+1,p+n+1); for (int i=1;i<=n;++i) { pa[i]=i; if (i!=1 && p[i]==p[i-1]) edge.push_back({0,{i,i-1}}); else vec.push_back({p[i],i}); } sort(vec.begin(),vec.end()); for (int i=1;i<=n;++i) { int hao=upper_bound(vec.begin(),vec.end(),make_pair(p[i],0ll))-vec.begin(); if (vec[hao].fi<2*p[i] && hao!=vec.size()) { edge.push_back({vec[hao].fi%p[i],{i,vec[hao].se}}); } for (int j=2;j*p[i]<=10000000;++j) { int hao=lower_bound(vec.begin(),vec.end(),make_pair(p[i]*j,0ll))-vec.begin(); //edge.push_back({vec[hao].fi%(p[i]*j),{i,vec[hao].se}}); if (vec[hao].fi<(j+1)*p[i] && hao!=vec.size()) { edge.push_back({vec[hao].fi%(p[i]*j),{i,vec[hao].se}}); } } } sort(edge.begin(),edge.end()); for (auto it: edge) { Merge(it.se.fi,it.se.se,it.fi); //cout<<it.fi<<'\n'; } cout<<ketqua; }

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

sirni.cpp:26:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   26 | main()
      | ^~~~
sirni.cpp: In function 'int main()':
sirni.cpp:46:38: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 |         if (vec[hao].fi<2*p[i] && hao!=vec.size())
      |                                   ~~~^~~~~~~~~~~~
sirni.cpp:54:46: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   54 |             if (vec[hao].fi<(j+1)*p[i] && hao!=vec.size())
      |                                           ~~~^~~~~~~~~~~~
#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...