Submission #409862

#TimeUsernameProblemLanguageResultExecution timeMemory
409862ruadhanMechanical Doll (IOI18_doll)C++17
6 / 100
107 ms11180 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; i++)
    {
        if (i < N - 1)
            adj[A[i]].push_back(A[i + 1]);
        else
            adj[A[i]].push_back(0);

        if (adj[A[i]].size() == 1)
            C[A[i]] = adj[A[i]][0];
        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, 3, 4, 5, 6, 1, 2, 3, 4, 5};
//     int M = 6;
//     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...