Submission #44523

#TimeUsernameProblemLanguageResultExecution timeMemory
44523MatheusLealVCoins (IOI17_coins)C++17
25 / 100
13 ms1508 KiB
#include <bits/stdc++.h>
 
using namespace std;
 
vector<int> v;
 
vector<int> coin_flips(vector<int> a, int x)
{
	int ini = 0, fim = 63, mid;
 
	set<int> forb, usados;
 
	vector<int> trocados;
 
	for(int k = 0; k < 8; k++)
	{
		mid = (ini + fim)/2;
 
		if( x >= mid)
		{
			if(!a[mid]) usados.insert(mid);
 
			a[mid] = 1;
			
			ini = mid + 1;
 
			forb.insert(mid);
		}
 
		else
		{
			if(a[mid]) usados.insert(mid);
 
			a[mid] = 0;
 
			fim = mid - 1;
 
			forb.insert(mid);
		}
	}
 
	for(auto x: usados) trocados.push_back(x);
 
	if( trocados.size() == 0)
	{
		for(int p = 0; p < 64; p++)
			if(!forb.count(p) && trocados.size() < 8) trocados.push_back(p);
	}
 
	return trocados;
}
 
int find_coin(vector<int> a)
{
	int ini = 0, fim = 63, mid;
 
	for(int k = 0; k < 20; k++)
	{
		mid = (ini + fim)/2;
 
		if(a[mid]) ini = mid + 1;
 
		else fim = mid - 1;
	}
 
	return mid;
}
#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...