제출 #1111031

#제출 시각아이디문제언어결과실행 시간메모리
1111031HasanV11010238자동 인형 (IOI18_doll)C++17
37 / 100
83 ms17276 KiB
#include "doll.h" #include <bits/stdc++.h> using namespace std; #define MAX 3000000 vector<vector<int>> ve; vector<int> x, y, de; int nxt = 0, n; int create(){ nxt++; x.push_back(0), y.push_back(0); return nxt; } void mktr(int no, int ri, int md, int d){ if (d == md - 1){ x[no - 1] = -ri; y[no - 1] = -ri; return; } x[no - 1] = -create(); mktr(-x[no - 1], ri, md, d + 1); y[no - 1] = -create(); mktr(-y[no - 1], ri, md, d + 1); } void connect(int no, int in, int md, int d, int wh){ int val = (1<<d) & in; if (d == md - 1){ if (val == 0){ x[no - 1] = wh; } else{ y[no - 1] = wh; } } else{ if (val == 0){ connect(-x[no - 1], in, md, d + 1, wh); } else{ connect(-y[no - 1], in, md, d + 1, wh); } } } void create_circuit(int M, vector<int> A){ n = A.size(); vector<int> tr(M + 1, 0); ve.assign(M + 1, vector<int>()), de.assign(M + 1, 0); for (int i = 0; i < n - 1; i++){ ve[A[i]].push_back(A[i + 1]); } tr[0] = A[0]; for (int i = 1; i <= M; i++){ int d = ceil(log2(ve[i].size() + 2)); de[i] = d; tr[i] = -create(); mktr(-tr[i], -tr[i], d, 0); for (int j = 0; j < ve[i].size(); j++){ connect(-tr[i], j, d, 0, ve[i][j]); } } connect(-tr[A[n - 1]], ve[A[n - 1]].size(), de[A[n - 1]], 0, tr[1]); for (int i = 1; i < M; i++){ connect(-tr[i], (1<<de[i]) - 1, de[i], 0, tr[i + 1]); } connect(-tr[M], (1<<de[M]) - 1, de[M], 0, 0); answer(tr, x, y); }

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

doll.cpp: In function 'void create_circuit(int, std::vector<int>)':
doll.cpp:56:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   56 |         for (int j = 0; j < ve[i].size(); j++){
      |                         ~~^~~~~~~~~~~~~~
#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...