Submission #113748

# Submission time Handle Problem Language Result Execution time Memory
113748 2019-05-28T07:11:38 Z Mahdi_Jfri ICC (CEOI16_icc) C++14
Compilation error
0 ms 0 KB
#include<bits/stdc++.h>
#define "icc.h"
using namespace std;

#define ll long long
#define pb push_back

auto seed = chrono::high_resolution_clock::now().time_since_epoch().count();
std::mt19937 rnd(seed);

const int maxn = 1e3 + 20;

vector<int> cmp[maxn];

int a[maxn] , b[maxn] , where[maxn];

bool is[maxn];

pair<int , int> fn(int n)
{
	int pt1 = 0 , pt2 = 0;
	while(1)
	{
		pt1 = 0 , pt2 = 0;
		for(int i = 0; i < n; i++)
		{
			if(rnd() % 2)
			{
				is[i] = 1;
				for(auto x : cmp[i])
					a[pt1++] = x;
			}
			else
			{
				is[i] = 0;
				for(auto x : cmp[i])
					b[pt2++] = x;
			}
		}

		if(query(pt1 , pt2 , a , b))
			break;
	}

	vector<int> x , y;
	for(int i = 0; i < pt1; i++)
		x.pb(a[i]);
	for(int i = 0; i < pt2; i++)
		y.pb(b[i]);

	while((int)y.size() > 1)
	{
		for(int i = 0; i < (int)y.size() / 2; i++)
			b[i] = y[i];
		pt2 = y.size() / 2;

		if(query(pt1 , pt2 , a , b))
		{
			y.clear();
			for(int i = 0; i < pt2; i++)
				y.pb(b[i]);
		}
		else
		{
			y.clear();
			vector<int> tmp;
			for(int i = pt2; i < (int)y.size(); i++)
				tmp.pb(y[i]);
			y = tmp;
		}
	}

	swap(x , y);
	pt1 = x.size();
	for(int i = 0; i < pt1; i++)
		a[i] = x[i];

	while((int)y.size() > 1)
	{
		for(int i = 0; i < (int)y.size() / 2; i++)
			b[i] = y[i];
		pt2 = y.size() / 2;

		if(query(pt1 , pt2 , a , b))
		{
			y.clear();
			for(int i = 0; i < pt2; i++)
				y.pb(b[i]);
		}
		else
		{
			vector<int> tmp;
			for(int i = pt2; i < (int)y.size(); i++)
				tmp.pb(y[i]);
			y = tmp;
		}
	}

	setRoad(x[0] , y[0]);
	return make_pair(x[0] , y[0]);
}

void run(int n)
{
	for(int i = 1; i <= n; i++)
		cmp[i].pb(i);

	for(int i = 0; i < n - 1; i++)
	{
		auto tmp = fn(n - i);
		int v = tmp.first , u = tmp.second;

		for(auto x : cmp[where[u]])
			where[x] = where[v] , cmp[where[v]].pb(x);

		for(int j = where[u] + 1; j < n - i; j++)
			cmp[j].swap(cmp[j - 1]);
	}
}

Compilation message

icc.cpp:2:9: error: macro names must be identifiers
 #define "icc.h"
         ^~~~~~~
icc.cpp: In function 'std::pair<int, int> fn(int)':
icc.cpp:41:6: error: 'query' was not declared in this scope
   if(query(pt1 , pt2 , a , b))
      ^~~~~
icc.cpp:57:6: error: 'query' was not declared in this scope
   if(query(pt1 , pt2 , a , b))
      ^~~~~
icc.cpp:84:6: error: 'query' was not declared in this scope
   if(query(pt1 , pt2 , a , b))
      ^~~~~
icc.cpp:99:2: error: 'setRoad' was not declared in this scope
  setRoad(x[0] , y[0]);
  ^~~~~~~