제출 #101904

#제출 시각아이디문제언어결과실행 시간메모리
101904daniel920712자동 인형 (IOI18_doll)C++14
2 / 100
1082 ms5784 KiB
#include "doll.h" #include <vector> #include <stdio.h> using namespace std; int con[1000005]={0}; int This[1000005]={0}; int m[1000005]; int n[1000005]; int start[1000005]={0}; vector < int > C,x,y; int X[1000005]={0}; int Y[1000005]={0}; int now=1; int t[1000005]={0}; int how[1000005]={0}; void build(int N,int here,int a,int b) { if(N==2) { X[-here]=a; Y[-here]=b; } else if(N%2==0) { X[-here]=(-now); now++; Y[-here]=(-now); now++; build(N/2,X[-here],a,b); build(N/2,Y[-here],0,0); } else { X[-here]=(-now); now++; Y[-here]=(-now); now++; build(N/2+1,X[-here],a,b); build(N/2+1,Y[-here],here,0); } //printf("%d %d %d %d\n",N,here,X[-here],Y[-here]); } void New(int here,int what) { if(how[-here]%2) { how[-here]++; if(X[-here]) New(X[here],what); else X[-here]=what; } else { how[-here]++; if(Y[-here]) New(Y[here],what); else Y[-here]=what; } } void create_circuit(int M, vector < int > A) { int N=A.size(),i,temp; C.push_back(A[0]); for(i=1;i<=M;i++) C.push_back(i); for(i=0;i<N;i++) con[A[i]]++; A.push_back(0); for(i=0;i<N;i++) { if(con[A[i]]==1) { C[A[i]]=A[i+1]; } else { if(!This[A[i]]) { C[A[i]]=-now; now++; build(con[A[i]],C[A[i]],0,0); } New(C[A[i]],A[i+1]); This[A[i]]++; } } //printf("a %d\n",now-1); for(i=1;i<now;i++) x.push_back(X[i]); for(i=1;i<now;i++) y.push_back(Y[i]); answer(C,x,y); }

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

doll.cpp: In function 'void create_circuit(int, std::vector<int>)':
doll.cpp:64:22: warning: unused variable 'temp' [-Wunused-variable]
   64 |     int N=A.size(),i,temp;
      |                      ^~~~
#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...