Submission #787049

#TimeUsernameProblemLanguageResultExecution timeMemory
787049APROHACKMechanical Doll (IOI18_doll)C++17
47 / 100
67 ms11184 KiB
#include <bits/stdc++.h>
#include "doll.h"
#define ll long long
#define pb push_back
#define ff first
#define ss second
using namespace std;
ll n, m, cur;

vector<int>c, x, y;
vector<int>a;

ll generar(ll desde, ll cada, ll div, bool lastt){
	if(div == 0){
		return a[desde];
	}
	if(a[desde] == -1 and ! lastt){
		return a[desde];
	}
	ll posi = cur;
	ll real = -(cur + 1);
	x.pb(0);
	y.pb(0);
	cur ++ ;
	x[posi] = generar(desde, cada*2, div-1, false);
	y[posi] = generar(desde + cada, cada*2, div-1, lastt);
	
	return real;
}

void create_circuit(int M, std::vector<int> A) {
	cur = 0;
	a = A;
	n = A.size();
	m = M;
	c.pb(A[0]);
	for(int i = 1 ; i <= M ; i ++)c.pb(-1);
	ll k = 1, pot = 0;
	while(k <= a.size()-1 ){
		k *= 2;
		pot ++;
	}
	while(a.size()-1 < k)a.pb(-1);
	a.pop_back();
	a.push_back(0);
	c[A[0]] = generar(1, 1, pot, true);
	answer(c, x, y);
	
}

Compilation message (stderr)

doll.cpp: In function 'void create_circuit(int, std::vector<int>)':
doll.cpp:39:10: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   39 |  while(k <= a.size()-1 ){
      |        ~~^~~~~~~~~~~~~
doll.cpp:43:19: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   43 |  while(a.size()-1 < k)a.pb(-1);
      |        ~~~~~~~~~~~^~~
#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...