제출 #982771

#제출 시각아이디문제언어결과실행 시간메모리
982771mariaclara자동 인형 (IOI18_doll)C++17
6 / 100
77 ms12616 KiB
#include "doll.h"
#include<bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair<int,int> pii;
#define all(x) x.begin(), x.end()
#define sz(x) (int)x.size()
#define mk make_pair
#define pb push_back
#define fr first
#define sc second

vector<int> S_x, S_y;
int create(vector<int> nodes) {
    if(sz(nodes) == 1) return nodes[0];
    vector<int> a, b;
    for(int i = 0; i < sz(nodes); i+=2) a.pb(nodes[i]);
    for(int i = 1; i < sz(nodes); i+=2) b.pb(nodes[i]);
    S_x.pb(create(a));
    S_y.pb(create(b));
    return -sz(S_x);
}

void create_circuit(int M, vector<int> A) {
    vector<vector<int>> edges(M+1);
    int N = sz(A);
    A.pb(0);

    for(int i = 0; i < N; i++)
        edges[A[i]].pb(A[i+1]);

    vector<int> ans = {A[0]};
    for(int i = 1; i <= M; i++)
        if(sz(edges[i])) ans.pb(create(edges[i]));
        else ans.pb(i);

    answer(ans, S_x, S_y);
}
#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...