제출 #839156

#제출 시각아이디문제언어결과실행 시간메모리
839156benjaminkleynMechanical Doll (IOI18_doll)C++17
53 / 100
110 ms16140 KiB
#include "doll.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; vector<int> X, Y; int build(vector<int> &nxt) { if (nxt.size() < 2) return 0; if (nxt.size() == 2) { X.push_back(nxt[0]); Y.push_back(nxt[1]); return -X.size(); } int i = X.size(); X.push_back(0); Y.push_back(0); reverse(nxt.begin(), nxt.end()); while (__builtin_popcount(nxt.size()) != 1) nxt.push_back(-1-i); reverse(nxt.begin(), nxt.end()); vector<int> l, r; for (int i = 0; i < nxt.size(); i += 2) { l.push_back(nxt[i]); r.push_back(nxt[i+1]); } X[i] = build(l); Y[i] = build(r); return -1-i; } void create_circuit(int M, vector<int> A) { vector<vector<int>> nxt(M + 1, vector<int>()); vector<int> root(M + 1); int N = A.size(); nxt[0].push_back(A[0]); for (int i = 0; i < N - 1; i++) nxt[A[i]].push_back(A[i+1]); nxt[A[N-1]].push_back(0); vector<int> C(M + 1); for (int i = 0; i <= M; i++) if (nxt[i].size() == 1) C[i] = nxt[i][0]; else C[i] = build(nxt[i]); answer(C, X, Y); }

컴파일 시 표준 에러 (stderr) 메시지

doll.cpp: In function 'int build(std::vector<int>&)':
doll.cpp:28:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |     for (int i = 0; i < nxt.size(); i += 2)
      |                     ~~^~~~~~~~~~~~
#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...