Submission #448069

# Submission time Handle Problem Language Result Execution time Memory
448069 2021-07-28T17:14:16 Z mosiashvililuka Teleporters (IOI08_teleporters) C++14
100 / 100
524 ms 65536 KB
#include<bits/stdc++.h>
using namespace std;
const int N=2000009;
int a,b,c,d,e,i,j,ii,jj,zx,xc,pi,fx[N],f[N],pas,bo[N],zm[N],li;
pair <int, int> P[N],p[N];
int l[N];
int main(){
	ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0);
	cin>>a>>b;
	for(i=1; i<=a; i++){
		cin>>P[i].first>>P[i].second;
		pi++;p[pi].first=P[i].first;p[pi].second=P[i].second;
		pi++;p[pi].first=P[i].second;p[pi].second=P[i].first;
	}
	sort(p+1,p+pi+1);
	zx=1;
	fx[0]=zx;
	for(i=1; i<=pi; i++){
		zx++;
		fx[p[i].first]=zx;
	}
	for(i=1; i<=pi; i++){
		f[i]=fx[p[i].second];
	}
	pas=0;
	for(i=1; i<=pi; i++){
		if(bo[i]!=0) continue;
		c=i;
		while(bo[c]==0&&c!=0){
			bo[c]=1;c=f[c];zm[i]++;
		}
		if(i==1){
			pas=zm[i]-1;
		}else{
			li++;
			l[li]=zm[i];
		}
	}
	sort(l+1,l+li+1);
	while(b>0&&li>0){
		pas+=l[li]+2;b--;li--;
	}
	if(b%2==0){
		pas+=b*2;
	}else{
		pas+=b*2-1;
	}
	cout<<pas;
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 460 KB Output is correct
2 Correct 5 ms 972 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 588 KB Output is correct
2 Correct 6 ms 1484 KB Output is correct
3 Correct 15 ms 1996 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 7 ms 1100 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 9 ms 1228 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 64 ms 8380 KB Output is correct
2 Correct 158 ms 21316 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 117 ms 15472 KB Output is correct
2 Correct 236 ms 29584 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 314 ms 39112 KB Output is correct
2 Correct 381 ms 45240 KB Output is correct
3 Correct 405 ms 48432 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 472 ms 50792 KB Output is correct
2 Correct 518 ms 65536 KB Output is correct
3 Correct 453 ms 61148 KB Output is correct
4 Correct 463 ms 61724 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 524 ms 64052 KB Output is correct
2 Correct 519 ms 64716 KB Output is correct
3 Correct 392 ms 59076 KB Output is correct
4 Correct 477 ms 65536 KB Output is correct