Submission #409844

#TimeUsernameProblemLanguageResultExecution timeMemory
409844ruadhanMechanical Doll (IOI18_doll)C++17
2 / 100
61 ms7704 KiB
#include <bits/stdc++.h>
#include "doll.h"
using namespace std;

// void answer(vector<int> &C, vector<int> tmp1, vector<int> tmp2)
// {
//     for (auto &x : C)
//         cout << x << " ";
//     cout << '\n';
//     for (auto x : tmp1)
//         cout << x << " ";
//     cout << '\n';
//     for (auto x : tmp2)
//         cout << x << " ";
//     cout << '\n';
// }

void create_circuit(int M, vector<int> A)
{
    int N = A.size();
    vector<int> C(M + 1);
    C[0] = A[0];

    vector<int> makes_switces;

    vector<int> adj[M + 1];
    adj[0].push_back(A[0]);
    for (int i = 0; i < N - 1; i++)
    {
        adj[A[i]].push_back(A[i + 1]);
        if (adj[A[i]].size() == 1)
            C[A[i]] = A[i + 1];
        else
            makes_switces.push_back(A[i]);
    }

    int S = makes_switces.size();
    vector<int> X(S), Y(S);
    for (int i = 0; i < S; i++)
    {
        C[makes_switces[i]] = -(i + 1);
        X[i] = adj[makes_switces[i]][0];
        Y[i] = adj[makes_switces[i]][1];
    }

    answer(C, X, Y);
}

// int main()
// {
//     vector<int> A = {1, 2, 1, 3};
//     int M = 4;
//     create_circuit(M, A);
//     return 0;
// }
#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...