Submission #417768

#TimeUsernameProblemLanguageResultExecution timeMemory
417768MeGustaElArroz23Mechanical Doll (IOI18_doll)C++14
6 / 100
338 ms12320 KiB
#include<bits/stdc++.h>
#include "doll.h"

using namespace std;

typedef vector<int> vi;
typedef vector<vi> vvi;
typedef pair<int,int> pii;
typedef vector<pii> vii;
typedef vector<vii> vvii;

#define deb(x) cerr << #x << " = " << x << ", ";
#define br cerr<<'\n';
void debv_(auto v){
  	for (int x:v) cerr << x<<", ";
 	cerr<<'\n';
}
#define debv(x) cerr<< #x<<" = ", debv_(x); 

int counter=1;
vii xy(1);

int create_xy(vi v){
	//deb(counter);
	//debv(v);
	if (v.size()==1) return v[0];
	xy.push_back(pii{});
	int ind=counter;
	counter++;
	vi der;
	vi izq;
	for (int i=0;i<v.size();i++){
		if (i%2==0) izq.push_back(v[i]);
		else der.push_back(v[i]);
	}
	br;
	xy[ind]=pii{create_xy(izq),create_xy(der)};
	//cerr << string(4*prof,' ');
	//debv(v);
	//cerr << string(4*prof,' ');
	//deb(-ind);
	//deb(xy[ind].first);
	//deb(xy[ind].second);
	//deb(-ind);
	return -ind;
}

void create_circuit(int n, vi ciclo) {
    int m=ciclo.size();
    ciclo.push_back(0);
    vvi conexiones(n+1);
    for (int i=0;i<m;i++) conexiones[ciclo[i]].push_back(ciclo[i+1]);
	for (int i=1;i<n+1;i++){
		if (conexiones[i].size()==0) conexiones[i].push_back(i);
	}
	//for (int i=1;i<n+1;i++) debv(conexiones[i]);
	vi salidas(n+1);
	salidas[0]=ciclo[0];
	for (int i=1;i<n+1;i++) salidas[i]=create_xy(conexiones[i]);
	//cerr<<1;
	vi switchX,switchY;
	for (int i=1;i<xy.size();i++){
		switchX.push_back(xy[i].first);
		switchY.push_back(xy[i].second);
	}
	//debv(conexiones[1]);
	//debv(salidas);
	//debv(switchX);
	//debv(switchY);
    answer(salidas, switchX, switchY);
}

Compilation message (stderr)

doll.cpp:14:12: warning: use of 'auto' in parameter declaration only available with '-fconcepts-ts'
   14 | void debv_(auto v){
      |            ^~~~
doll.cpp: In function 'int create_xy(vi)':
doll.cpp:32:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |  for (int i=0;i<v.size();i++){
      |               ~^~~~~~~~~
doll.cpp: In function 'void create_circuit(int, vi)':
doll.cpp:62:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   62 |  for (int i=1;i<xy.size();i++){
      |               ~^~~~~~~~~~
#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...