제출 #546381

#제출 시각아이디문제언어결과실행 시간메모리
546381jamezzz자동 인형 (IOI18_doll)C++17
53 / 100
183 ms49580 KiB
#include "doll.h" #include <bits/stdc++.h> using namespace std; vector<int> out[500005]; void create_circuit(int M,vector<int> A){ int N=A.size(); out[0].push_back(A[0]); for(int i=0;i<N-1;++i){ out[A[i]].push_back(A[i+1]); } out[A[N-1]].push_back(0); vector<int> C(M+1); vector<int> X,Y; int cur=1; for(int i=0;i<M+cur;++i){ if(i<=M){ if(out[i].size()==0)continue; if(out[i].size()==1){ C[i]=out[i][0]; } else{ for(int x:out[i])out[M+cur].push_back(x); C[i]=-cur; ++cur; } } else{ if(out[i].size()%2==1){ int x=out[i].back(); out[i].pop_back(); out[i].push_back(-i+M); out[i].push_back(x); } vector<int> l,r; for(int j=0;j<out[i].size();++j){ if(j%2==0)l.push_back(out[i][j]); else r.push_back(out[i][j]); } if(l.size()==1)X.push_back(l[0]); else{ X.push_back(-cur); swap(out[M+cur],l); ++cur; } if(r.size()==1)Y.push_back(r[0]); else{ Y.push_back(-cur); swap(out[M+cur],r); ++cur; } } } answer(C,X,Y); }

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

doll.cpp: In function 'void create_circuit(int, std::vector<int>)':
doll.cpp:39:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   39 |    for(int j=0;j<out[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...