제출 #101786

#제출 시각아이디문제언어결과실행 시간메모리
101786daniel920712자동 인형 (IOI18_doll)C++14
0 / 100
23 ms2496 KiB
#include "doll.h"
#include <vector>
#include <stdio.h>
using namespace std;
int con[1000005]={0};
int This[1000005]={0};
vector < int > C,X,Y,x,y;
void create_circuit(int M, vector < int > A)
{
    X.push_back(0);
    Y.push_back(0);
    int N=A.size(),now=1,i;
    C.push_back(A[0]);
    for(i=1;i<=M;i++) C.push_back(i);
    for(i=0;i<N;i++) con[A[i]]++;
    A.push_back(0);
    for(i=0;i<M;i++)
    {
        if(con[A[i]]==1) C[A[i]]=A[i+1];
        else if(con[A[i]])
        {
            if(This[A[i]]==0)
            {
                C[A[i]]=-(now+1);
                now++;
                X.push_back(A[i+1]);
                Y.push_back(A[i+1]);
            }
            else
            {

                Y[-C[A[i]]-1]=A[i+1];
                //printf("%d %d %d %d\n",i,A[i+1],);
            }
            This[A[i]]++;

        }
        /*for(auto i:C) printf("%d ",i);
        printf("\n");*/

    }
    //printf("%d\n",now);
    for(i=1;i<now;i++) x.push_back(X[i]);
    for(i=1;i<now;i++) y.push_back(Y[i]);
    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...