Submission #120237

#TimeUsernameProblemLanguageResultExecution timeMemory
120237nvmdavaTeleporters (IOI08_teleporters)C++17
100 / 100
477 ms29088 KiB
#include <bits/stdc++.h>
using namespace std;
#define N 2000001
int to[2000005];
bool in[2000005];
int cnt;

void go(int i){
	if(in[i] || i > N) return;
	in[i] = 1;
	i++;
	if(to[i]){
		i = to[i];
		cnt++;
	}
	go(i);
}
vector<int> v;
int main(){
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int n, m;
	cin>>n>>m;
	for(int i = 1; i <= n; i++){
		int w, e;
		cin>>w>>e;
		to[w] = e;		
		to[e] = w;
	}
	int res;
	for(int i = 0; i <= N; i++){
		if(!in[i]){
			cnt = 0;
			go(i);
			if(i == 0) res = cnt;
			else v.push_back(cnt);
		}
	}
	sort(v.rbegin(), v.rend());
	for(int i = 0; i < v.size() && m--; i++){
		res += v[i] + 2;
	}
	if(m >= 0)res += (m / 2 * 4) + (m % 2); 
	cout<<res;
}

Compilation message (stderr)

teleporters.cpp: In function 'int main()':
teleporters.cpp:41:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i = 0; i < v.size() && m--; i++){
                 ~~^~~~~~~~~~
teleporters.cpp:42:7: warning: 'res' may be used uninitialized in this function [-Wmaybe-uninitialized]
   res += v[i] + 2;
   ~~~~^~~~~~~~~~~
#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...