Submission #75101

#TimeUsernameProblemLanguageResultExecution timeMemory
75101faustaadpMechanical Doll (IOI18_doll)C++17
16 / 100
151 ms15716 KiB
#include "doll.h"
#include<bits/stdc++.h>
#define ll long long
#define pb push_back
#define mp make_pair
#define fi first
#define se second
using namespace std;
ll i,Sa=0;
vector<ll> v[202020];
void create_circuit(int M, std::vector<int> A) {
    int N = A.size();
    std::vector<int> C(M + 1),X,Y;
    v[0].pb(A[i]);
    for(i=0;i<N-1;i++)
        v[A[i]].pb(A[i+1]);
    v[A[N-1]].pb(0);
    for(i=0;i<=M;i++)
    {
        if(v[i].size()==1)
            C[i]=v[i][0];
        else
        if(v[i].size()==2)
        {
            Sa++;
            C[i]=-Sa;
            X.pb(v[i][0]);
            Y.pb(v[i][1]);
        }
        else
        if(v[i].size()==3)
        {
            Sa++;
            C[i]=-Sa;
            X.pb(-Sa-1);
            Y.pb(-Sa-2);
            X.pb(v[i][0]);
            Y.pb(-Sa);
            X.pb(v[i][1]);
            Y.pb(v[i][2]);
            Sa+=2;
        }
        else
        if(v[i].size()==4)
        {
            Sa++;
            C[i]=-Sa;
            X.pb(-Sa-1);
            Y.pb(-Sa-2);
            X.pb(v[i][0]);
            Y.pb(v[i][2]);
            X.pb(v[i][1]);
            Y.pb(v[i][3]);
            Sa+=2;
        }
    }
   // for(i=0;i<=M;i++)cout<<i<<" "<<C[i]<<"\n";
   // for(i=0;i<X.size();i++)cout<<-i-1<<" "<<X[i]<<" "<<Y[i]<<"\n";
    answer(C, X, 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...