Submission #782405

#TimeUsernameProblemLanguageResultExecution timeMemory
782405vjudge1Mechanical Doll (IOI18_doll)C++17
53 / 100
146 ms28128 KiB
#include "doll.h" #include<bits/stdc++.h> using namespace std; vector<int> X, Y, C; int ms(int a, int b) { X.push_back(a); Y.push_back(b); return -Y.size(); } int CALCTREE(vector<int> x, int lev) { if(lev==0) return x[0]; vector<int> v[2]; for(int i = 0; i < x.size(); i++) { v[i%2].push_back(x[i]); } int tmp = X.size(); ms(0,0); X[tmp] = CALCTREE(v[0], lev-1); Y[tmp] = CALCTREE(v[1],lev-1); return -tmp-1; } vector<int> adj[500100]; void create_circuit(int M, std::vector<int> A) { C.resize(M+1); int n = A.size(); adj[0].push_back(A[0]); A.push_back(0); for(int i = 0; i < n; i++) adj[A[i]].push_back(A[i+1]); for(int i = 0; i <= M; i++) { if(!adj[i].size()) continue; int x = 32-__builtin_clz((int)adj[i].size()-1); if(adj[i].size()==1) x = 0; int targetsz=1<<x; vector<int> make; for(int j = adj[i].size(); j < targetsz; j++) { make.push_back(-(int)X.size()-1); } for(auto j:adj[i]) make.push_back(j); C[i] = CALCTREE(make,x); } answer(C, X, Y); }

Compilation message (stderr)

doll.cpp: In function 'int CALCTREE(std::vector<int>, int)':
doll.cpp:13:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   13 |     for(int i = 0; i < x.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...