제출 #1222434

#제출 시각아이디문제언어결과실행 시간메모리
1222434m5588ohammedTeleporters (IOI08_teleporters)C++20
85 / 100
1096 ms117860 KiB
#include <bits/stdc++.h> using namespace std; #define endl "\n" #define mod 1000000007 int n,m,ans; int p[2000005],v[2000005]; bool vis[2000005]; map <int,int> idx; vector <int> telp; vector <int> qu; signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); memset(v,-1,sizeof v); 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]=idx[p[telp[0]]]; for(int j=1;j<telp.size();j++){ v[j]=idx[p[telp[j]]]; } for(int i=0;i<=n*2+1;i++){ if(vis[i]==0){ int bg=i,cnt=1; while(true){ vis[bg]=1; if(v[bg]==-1) {ans+=cnt-1;break;} if(vis[v[bg]]==1){ qu.push_back(cnt);break;} cnt++; bg=v[bg]; } } } 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...