#include<bits/stdc++.h>
#include "doll.h"
using namespace std;
typedef long long ll;
vector<int> X, Y;
int DFS(int curr, int add, vector<int>& adj, int org){
if(add >= (int)adj.size()){
if(curr == add - 1){
return adj.back();
}else{
if(curr < (int)adj.size() - 1) return adj[curr];
else return org;
}
}
int ind = (int)X.size();
X.push_back(-1);
Y.push_back(-1);
if(org == 0) org = -(ind+1);
X[ind] = DFS(curr, add * 2, adj, org);
Y[ind] = DFS(curr + add, add * 2, adj, org);
return -(ind+1);
}
void create_circuit(int M, vector<int> A){
int m = M;
int n = (int)A.size();
vector<int> c(m+1, -1);
A.push_back(0);
c[0] = A[0];
vector<vector<int>> adj(M + 1);
for(int i = 0; i < n; i++){
adj[A[i]].push_back(A[i+1]);
}
for(int i = 1; i <= M; i++){
if((int)adj[i].size() == 0){
c[i] = i;
continue;
}
c[i] = DFS(0, 1, adj[i], 0);
}
//~ for(int i = 0; i <= m; i++){
//~ cout << "i " << i << " c " << c[i] << endl;
//~ }
//~ for(int i = 0; i < (int)X.size(); i++){
//~ cout << "s " << -(i+1) << " x " << X[i] << " y " << Y[i] << endl;
//~ }
answer(c, X, Y);
}
//~ namespace {
//~ constexpr int P_MAX = 20000000;
//~ constexpr int S_MAX = 400000;
//~ int M, N;
//~ std::vector<int> A;
//~ bool answered;
//~ int S;
//~ std::vector<int> IC, IX, IY;
//~ int read_int() {
//~ int x;
//~ if (scanf("%d", &x) != 1) {
//~ fprintf(stderr, "Error while reading input\n");
//~ exit(1);
//~ }
//~ return x;
//~ }
//~ void wrong_answer(const char *MSG) {
//~ printf("Wrong Answer: %s\n", MSG);
//~ exit(0);
//~ }
//~ void simulate() {
//~ if (S > S_MAX) {
//~ char str[50];
//~ sprintf(str, "over %d switches", S_MAX);
//~ wrong_answer(str);
//~ }
//~ for (int i = 0; i <= M; ++i) {
//~ if (!(-S <= IC[i] && IC[i] <= M)) {
//~ wrong_answer("wrong serial number");
//~ }
//~ }
//~ for (int j = 1; j <= S; ++j) {
//~ if (!(-S <= IX[j - 1] && IX[j - 1] <= M)) {
//~ wrong_answer("wrong serial number");
//~ }
//~ if (!(-S <= IY[j - 1] && IY[j - 1] <= M)) {
//~ wrong_answer("wrong serial number");
//~ }
//~ }
//~ int P = 0;
//~ std::vector<bool> state(S + 1, false);
//~ int pos = IC[0];
//~ int k = 0;
//~ FILE *file_log = fopen("log.txt", "w");
//~ fprintf(file_log, "0\n");
//~ for (;;) {
//~ fprintf(file_log, "%d\n", pos);
//~ if (pos < 0) {
//~ if (++P > P_MAX) {
//~ fclose(file_log);
//~ char str[50];
//~ sprintf(str, "over %d inversions", P_MAX);
//~ wrong_answer(str);
//~ }
//~ state[-pos] = !state[-pos];
//~ pos = state[-pos] ? IX[-(1 + pos)] : IY[-(1 + pos)];
//~ } else {
//~ if (pos == 0) {
//~ break;
//~ }
//~ if (k >= N) {
//~ fclose(file_log);
//~ wrong_answer("wrong motion");
//~ }
//~ if (pos != A[k++]) {
//~ fclose(file_log);
//~ wrong_answer("wrong motion");
//~ }
//~ pos = IC[pos];
//~ }
//~ }
//~ fclose(file_log);
//~ if (k != N) {
//~ wrong_answer("wrong motion");
//~ }
//~ for (int j = 1; j <= S; ++j) {
//~ if (state[j]) {
//~ wrong_answer("state 'Y'");
//~ }
//~ }
//~ printf("Accepted: %d %d\n", S, P);
//~ }
//~ } // namespace
//~ void answer(std::vector<int> C, std::vector<int> X, std::vector<int> Y) {
//~ if (answered) {
//~ wrong_answer("answered not exactly once");
//~ }
//~ answered = true;
//~ // check if input format is correct
//~ if ((int)C.size() != M + 1) {
//~ wrong_answer("wrong array length");
//~ }
//~ if (X.size() != Y.size()) {
//~ wrong_answer("wrong array length");
//~ }
//~ S = X.size();
//~ IC = C;
//~ IX = X;
//~ IY = Y;
//~ }
//~ int main() {
//~ M = read_int();
//~ N = read_int();
//~ A.resize(N);
//~ for (int k = 0; k < N; ++k) {
//~ A[k] = read_int();
//~ }
//~ answered = false;
//~ create_circuit(M, A);
//~ if (!answered) {
//~ wrong_answer("answered not exactly once");
//~ }
//~ FILE *file_out = fopen("out.txt", "w");
//~ fprintf(file_out, "%d\n", S);
//~ for (int i = 0; i <= M; ++i) {
//~ fprintf(file_out, "%d\n", IC[i]);
//~ }
//~ for (int j = 1; j <= S; ++j) {
//~ fprintf(file_out, "%d %d\n", IX[j - 1], IY[j - 1]);
//~ }
//~ fclose(file_out);
//~ simulate();
//~ return 0;
//}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
300 KB |
Output is correct |
2 |
Correct |
27 ms |
6772 KB |
Output is correct |
3 |
Correct |
17 ms |
5584 KB |
Output is correct |
4 |
Correct |
1 ms |
212 KB |
Output is correct |
5 |
Correct |
9 ms |
3752 KB |
Output is correct |
6 |
Correct |
25 ms |
8396 KB |
Output is correct |
7 |
Correct |
1 ms |
212 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
300 KB |
Output is correct |
2 |
Correct |
27 ms |
6772 KB |
Output is correct |
3 |
Correct |
17 ms |
5584 KB |
Output is correct |
4 |
Correct |
1 ms |
212 KB |
Output is correct |
5 |
Correct |
9 ms |
3752 KB |
Output is correct |
6 |
Correct |
25 ms |
8396 KB |
Output is correct |
7 |
Correct |
1 ms |
212 KB |
Output is correct |
8 |
Correct |
36 ms |
8244 KB |
Output is correct |
9 |
Correct |
35 ms |
9552 KB |
Output is correct |
10 |
Correct |
55 ms |
12828 KB |
Output is correct |
11 |
Correct |
1 ms |
212 KB |
Output is correct |
12 |
Correct |
1 ms |
212 KB |
Output is correct |
13 |
Correct |
1 ms |
212 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
300 KB |
Output is correct |
2 |
Correct |
27 ms |
6772 KB |
Output is correct |
3 |
Correct |
17 ms |
5584 KB |
Output is correct |
4 |
Correct |
1 ms |
212 KB |
Output is correct |
5 |
Correct |
9 ms |
3752 KB |
Output is correct |
6 |
Correct |
25 ms |
8396 KB |
Output is correct |
7 |
Correct |
1 ms |
212 KB |
Output is correct |
8 |
Correct |
36 ms |
8244 KB |
Output is correct |
9 |
Correct |
35 ms |
9552 KB |
Output is correct |
10 |
Correct |
55 ms |
12828 KB |
Output is correct |
11 |
Correct |
1 ms |
212 KB |
Output is correct |
12 |
Correct |
1 ms |
212 KB |
Output is correct |
13 |
Correct |
1 ms |
212 KB |
Output is correct |
14 |
Correct |
62 ms |
12968 KB |
Output is correct |
15 |
Correct |
42 ms |
6964 KB |
Output is correct |
16 |
Correct |
52 ms |
10196 KB |
Output is correct |
17 |
Correct |
1 ms |
300 KB |
Output is correct |
18 |
Correct |
1 ms |
212 KB |
Output is correct |
19 |
Correct |
0 ms |
212 KB |
Output is correct |
20 |
Correct |
63 ms |
12052 KB |
Output is correct |
21 |
Correct |
0 ms |
212 KB |
Output is correct |
22 |
Correct |
1 ms |
212 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
212 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
1 ms |
212 KB |
Output is partially correct |
2 |
Correct |
32 ms |
7196 KB |
Output is correct |
3 |
Partially correct |
51 ms |
9028 KB |
Output is partially correct |
4 |
Partially correct |
56 ms |
10612 KB |
Output is partially correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
1 ms |
212 KB |
Output is partially correct |
2 |
Correct |
32 ms |
7196 KB |
Output is correct |
3 |
Partially correct |
51 ms |
9028 KB |
Output is partially correct |
4 |
Partially correct |
56 ms |
10612 KB |
Output is partially correct |
5 |
Partially correct |
75 ms |
14712 KB |
Output is partially correct |
6 |
Partially correct |
100 ms |
16736 KB |
Output is partially correct |
7 |
Partially correct |
77 ms |
16472 KB |
Output is partially correct |
8 |
Partially correct |
84 ms |
17164 KB |
Output is partially correct |
9 |
Partially correct |
52 ms |
10320 KB |
Output is partially correct |
10 |
Partially correct |
80 ms |
17032 KB |
Output is partially correct |
11 |
Partially correct |
84 ms |
14752 KB |
Output is partially correct |
12 |
Partially correct |
52 ms |
11124 KB |
Output is partially correct |
13 |
Partially correct |
51 ms |
10048 KB |
Output is partially correct |
14 |
Partially correct |
59 ms |
9912 KB |
Output is partially correct |
15 |
Partially correct |
48 ms |
9068 KB |
Output is partially correct |
16 |
Partially correct |
2 ms |
596 KB |
Output is partially correct |
17 |
Partially correct |
43 ms |
8464 KB |
Output is partially correct |
18 |
Partially correct |
43 ms |
8508 KB |
Output is partially correct |
19 |
Partially correct |
46 ms |
9068 KB |
Output is partially correct |
20 |
Partially correct |
61 ms |
13020 KB |
Output is partially correct |
21 |
Partially correct |
69 ms |
13208 KB |
Output is partially correct |
22 |
Partially correct |
57 ms |
12088 KB |
Output is partially correct |