# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
800761 | 2023-08-01T20:03:41 Z | biank | 자동 인형 (IOI18_doll) | C++14 | 0 ms | 0 KB |
#include "doll.h" #include <bits/stdc++.h> using namespace std; #define SIZE(x) (int)x.size() void create_circuit(int M, vector<int> A) { int N = SIZE(A); if (M == 1) { vector <int> C(M+1); vector <int> X(N-1), Y(N-1); C[0] = 1; if (N == 1) { C[1] = 0; answer(C,X,Y); return; } if (N == 2) { C[1] = -1; X[0] = 1; Y[0] = 0; answer(C,X,Y); return; } C[1] = -1; X[0] = 1; Y[0] = -2; for (int i=1; i<N-2; i++) { X[i] = -i; Y[i] = -i-2; //cerr << X[i] << ' ' << Y[i] << endl; } X[N-2] = -N+2; Y[N-2] = 0; } else { vector<int> C(M+1, -1), X(0), Y(0); int k = 0; for (int i=0; i<N; i++) { C[k] = A[i]; k = A[i]; } C[k] = 0; for (int i=0; i<=M; i++) { if (C[i] == -1) { C[i] = i; } } } /*for (int i=0; i<=M; i++) { cerr << C[i] << " "; } cerr << endl;*/ /**/ answer(C, X, Y); }