Submission #312124

#TimeUsernameProblemLanguageResultExecution timeMemory
312124amunduzbaevMechanical Doll (IOI18_doll)C++14
16 / 100
117 ms11156 KiB
//#include "grader.cpp"
#include "doll.h"
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n,m,ind=-1;
vector<vector<int>>way;
void create_circuit(int M, vector<int> a) {
    n=a.size();
    m=M;
    vector<int>x,y,c(m+1,0);
    way.resize(m+1);
    c[0]=a[0];
    for(int i=0;i<n-1;i++){
        way[a[i]].push_back(a[i+1]);
        c[a[i]]=a[i+1];
    }
    way[a[n-1]].push_back(0);
    for(int i=1;i<=m;i++){
        int s=way[i].size();
        if(s<=1) continue;
        c[i]=ind--;
        if(s==2){
            x.push_back(way[i][0]);
            y.push_back(way[i][1]);
        }
        else if(s==3){
            x.push_back(ind--);
            y.push_back(ind--);
            x.push_back(c[i]);
            y.push_back(way[i][1]);
            x.push_back(way[i][0]);
            y.push_back(way[i][2]);
        }
        else if(s==4){
            x.push_back(ind--);
            y.push_back(ind--);
            x.push_back(way[i][0]);
            x.push_back(way[i][1]);
            y.push_back(way[i][2]);
            y.push_back(way[i][3]);
        }
    }
    /*
    for(int i=0;i<c.size();i++)
        cout<<c[i]<<" ";
    cout<<"\n";
    for(int i=0;i<x.size();i++)
        cout<<x[i]<<" "<<y[i]<<" \n";
    */

    answer(c,x,y);

}

/*

9 9
2 9 8 1 3 7 6 4 5


4 4
1 2 1 3

6 8
1 2 1 3 1 4 1 5

*/
#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...