Submission #776050

#TimeUsernameProblemLanguageResultExecution timeMemory
776050phoenixMechanical Doll (IOI18_doll)C++17
53 / 100
113 ms19320 KiB
#include<bits/stdc++.h> #include "doll.h" using namespace std; vector<int> A, C, X, Y; int S = 0; int create_switch() { X.push_back(-1); Y.push_back(-1); S++; return -S; } void build(int trigger, vector<int> in) { if((int)in.empty()) { C[trigger] = 0; return; } if((int)in.size() == 1) { C[trigger] = A[in[0] + 1]; return; } int k = 1; vector<int> order = {0}; while(k < (int)in.size()) { if(k == 1) C[trigger] = create_switch(); else { int len = S; for(int i = len - k / 2; i < len; i++) { X[i] = create_switch(); Y[i] = create_switch(); } } vector<int> new_ord; for(int i = 0; i < k; i++) new_ord.push_back(order[i]), new_ord.push_back(order[i] + k); order = new_ord; k *= 2; } for(int i = S - k / 2; i < S; i++) { int y = i - S + k / 2; X[i] = (order[y * 2] < k - (int)in.size() ? C[trigger] : A[in[ order[2 * y] - k + (int)in.size() ] + 1]); Y[i] = (order[y * 2 + 1] < k - (int)in.size() ? C[trigger] : A[in[ order[2 * y + 1] - k + (int)in.size() ] + 1]); } } const int N = 1e5 + 10; vector<int> g[N]; void create_circuit(int M, std::vector<int> a) { C.resize(M + 1); a.push_back(0); A = a; for(int i = 0; i < (int)A.size(); i++) { g[A[i]].push_back(i); } C[0] = A[0]; for(int i = 1; i <= M; i++) { build(i, g[i]); } if(S > 2 * (int)a.size()) { 1 / 0; return; } answer(C, X, Y); }

Compilation message (stderr)

doll.cpp: In function 'void create_circuit(int, std::vector<int>)':
doll.cpp:64:11: warning: division by zero [-Wdiv-by-zero]
   64 |         1 / 0;
      |         ~~^~~
doll.cpp:64:11: warning: statement has no effect [-Wunused-value]
#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...