제출 #1222420

#제출 시각아이디문제언어결과실행 시간메모리
1222420m5588ohammedTeleporters (IOI08_teleporters)C++20
0 / 100
364 ms131072 KiB
#include <bits/stdc++.h> using namespace std; #define endl "\n" #define mod 1000000007 int n,m,ans; int p[2000001]; map <int,int> idx,vis; vector <int> v[4000001]; vector <int> telp; vector <int> qu; void solve(int i,int cnt){ vis[i]=1; if(v[i].size()==0) ans+=cnt-1; for(int j:v[i]){ if(vis[j]==1) qu.push_back(cnt); else solve(j,cnt+1); } return; } signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin>>n>>m; for(int i=0;i<n;i++){ int a,b; cin>>a>>b; telp.push_back(a); telp.push_back(b); p[a]=b; p[b]=a; } sort(telp.begin(),telp.end()); for(int j=0;j<telp.size();j++) idx[telp[j]]=j+1; v[0].push_back(idx[p[telp[0]]]); for(int j=1;j<telp.size();j++){ //cout<<j<<" "<<idx[p[telp[j]]]<<endl; v[j].push_back(idx[p[telp[j]]]); } for(int i=0;i<=n*2+1;i++){ if(vis[i]==0){ solve(i,1); } } sort(qu.begin(),qu.end()); for(int i=qu.size()-1;i>=max(0,(int)qu.size()-m);i--){ ans+=qu[i]+2; } if(qu.size()<m){ m-=qu.size(); ans+=(m/2)*4; if(m%2==1) ans++; } cout<<ans<<endl; return 0; } //g++ -std=c++17 template.cpp -o executable.exe
#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...
#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...