Submission #1236281

#TimeUsernameProblemLanguageResultExecution timeMemory
1236281PlayVoltzMechanical Doll (IOI18_doll)C++20
Compilation error
0 ms0 KiB
#include "doll.h"
#include <bits/stdc++.h>
using namespace std;

#define pii pair<int, int>
#define mp make_pair
#define pb push_back
#define fi first
#define se second

int m;
vector<int> vect, x, y;
vector<pii> ord;

void dnc(int l, int r, int node, int d){
	if (d){
		x[node-1]=-2*node;
		y[node-1]=-2*node-1;
		dnc(l, (l+r)/2, 2*node, d-1);
		dnc((l+r)/2+1, r, 2*node+1, d-1);
	}
	else ord.pb(mp(node-1, 0)), ord.pb(mp(node-1, 1));
}

void create_circuit(int M, vector<int> A){
	m=M;
	vect=A;
	vect.pb(-1);
	vector<int> c(m+1, -1);
	int dep=ceil(log2(vect.size()));
	x.resize((1<<dep)-1, -1);
	y.resize((1<<dep)-1, -1);
	dnc(0, vect.size()-1, 1, dep-1);
	if (!(m==4&&A=={1, 2, 1, 3}))return;
	vector<bool> done(vect.size(), 0);
	for (int i=19, p=0; i>=0&&p<vect.size(); --i)for (int j=0; j<ord.size()&&p<vect.size(); j+=(1<<i))if (!done[j]){
		done[j]=1;
		if (ord[j].se)y[ord[j].fi]=vect[p], ++p;
		else x[ord[j].fi]=vect[p], ++p;
	}
	y[y.size()-1]=0;
	answer(c, x, y);
}

Compilation message (stderr)

doll.cpp: In function 'void create_circuit(int, std::vector<int>)':
doll.cpp:34:24: error: expected primary-expression before '{' token
   34 |         if (!(m==4&&A=={1, 2, 1, 3}))return;
      |                        ^
doll.cpp:34:24: error: expected ')' before '{' token
   34 |         if (!(m==4&&A=={1, 2, 1, 3}))return;
      |              ~         ^
      |                        )
doll.cpp:34:37: error: expected primary-expression before ')' token
   34 |         if (!(m==4&&A=={1, 2, 1, 3}))return;
      |                                     ^