Submission #421811

#TimeUsernameProblemLanguageResultExecution timeMemory
421811A_DMechanical Doll (IOI18_doll)C++14
0 / 100
60 ms12036 KiB
#include "doll.h" #include <bits/stdc++.h> using namespace std; const int NN=2e5+100; vector<int> vec[NN]; vector<int> x,y,c; int cnt,mx=0; void fix(int p,int l,int sum,int i) { mx=max(mx,p+cnt); if(l+sum>=vec[i].size()){ x[p+cnt-1]=(-p-cnt); y[p+cnt-1]=(vec[i][l]); return; } x[p+cnt-1]=(-(p*2)-cnt); y[p+cnt-1]=(-(p*2+1)-cnt); fix(p*2,l,sum*2,i); fix(p*2+1,l+sum,sum*2,i); } void create_circuit(int m,vector<int>a){ x.resize(300000); y.resize(300000); int n = a.size(); for(int i=0;i<n-1;i++){ vec[a[i]].push_back(a[i+1]); } vec[a[n-1]].push_back(0); c.push_back(a[0]); for(int i=1;i<=m;i++){ if(vec[i].size()==0){ c.push_back(0); continue; } cnt=mx; c.push_back(-cnt-1); fix(1,0,1,i); } answer(c,x,y); }

Compilation message (stderr)

doll.cpp: In function 'void fix(int, int, int, int)':
doll.cpp:11:13: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   11 |     if(l+sum>=vec[i].size()){
      |        ~~~~~^~~~~~~~~~~~~~~
#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...