제출 #953534

#제출 시각아이디문제언어결과실행 시간메모리
953534yellowtoad자동 인형 (IOI18_doll)C++17
15 / 100
75 ms15172 KiB
#include "doll.h" #include <iostream> #include <vector> using namespace std; int n, m, s, cnt, idx; vector<int> v[100010], xx, yy; void create_circuit(int M, std::vector<int> a) { n = a.size(); m = M; vector<int> c(m+1), x, y; c[0] = a[0]; a.push_back(0); for (int i = 0; i < n; i++) v[a[i]].push_back(a[i+1]); for (int i = 1; i <= m; i++) { if (v[i].empty()) c[i] = 0; else if (v[i].size() == 1) c[i] = v[i][0]; else { xx.clear(); yy.clear(); xx.push_back(0); yy.push_back(0); idx = 0; while ((1<<(idx+1)) < v[i].size()) { for (int j = 1; j <= (1<<idx); j++) { xx.push_back(s-xx.size()*2); yy.push_back(s-yy.size()*2-1); } idx++; } for (int j = 0; j < v[i].size()-1; j++) { if (j%2 == 0) xx.push_back(v[i][j]); else yy.push_back(v[i][j]); } for (int j = v[i].size(); j < (1<<(idx+1)); j++) { if (j%2) xx.push_back(s-1); else yy.push_back(s-1); } yy.push_back(v[i].back()); c[i] = s-1; s -= (1<<(idx+1))-1; for (int j = 1; j < xx.size(); j++) { x.push_back(xx[j]); y.push_back(yy[j]); } } } /*for (int i = 0; i <= m; i++) cout << c[i] << " "; cout << endl; for (int i = 0; i < x.size(); i++) cout << x[i] << " "; cout << endl; for (int i = 0; i < y.size(); i++) cout << y[i] << " "; cout << endl;*/ answer(c,x,y); }

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

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