Submission #330480

#TimeUsernameProblemLanguageResultExecution timeMemory
330480aquablitz11Mechanical Doll (IOI18_doll)C++14
47 / 100
151 ms11868 KiB
#include <bits/stdc++.h> #include "doll.h" using namespace std; const int INF = 2e9; vector<int> C, X, Y; int cnt = 0; int get_switch(int x, int y) { X.push_back(x); Y.push_back(y); return --cnt; } int create_tree(const vector<int> &v) { if (v.size() == 1) return v[0]; vector<int> vx, vy; for (int i = 0; i < v.size(); ++i) { if (i % 2 == 0) vx.push_back(v[i]); else vy.push_back(v[i]); } int x = create_tree(vx); int y = create_tree(vy); return get_switch(x, y); } void create_circuit(int M, vector<int> A) { int n = A.size(); int k = 0; while ((1<<k) < n) ++k; n = 1<<k; vector<int> v(A.begin()+1, A.end()); v.resize(n, INF); v[n-1] = 0; int r = create_tree(v); C = vector<int>(M+1, r); C[0] = A[0]; for (auto &x: X) { if (x == INF) x = r; } for (auto &y: Y) { if (y == INF) y = r; } answer(C, X, Y); }

Compilation message (stderr)

doll.cpp: In function 'int create_tree(const std::vector<int>&)':
doll.cpp:20:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   20 |     for (int i = 0; i < v.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...