이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "doll.h"
#include <vector>
#include <stdio.h>
using namespace std;
int con[1000005]={0};
int This[1000005]={0};
int m[1000005];
int n[1000005];
vector < int > C,x,y;
int X[1000005];
int Y[1000005];
void create_circuit(int M, vector < int > A)
{
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<N;i++)
{
if(con[A[i]]==1) C[A[i]]=A[i+1];
else if(con[A[i]]==2)
{
if(This[A[i]]==0)
{
C[A[i]]=-(now);
X[now]=A[i+1];
now++;
}
else Y[-C[A[i]]]=A[i+1];
This[A[i]]++;
}
else if(con[A[i]]==4)
{
if(This[A[i]]==0)
{
C[A[i]]=-now;
X[now]=-(now+1);
Y[now]=-(now+2);
now+=3;
m[A[i]]=X[C[A[i]]];
n[A[i]]=Y[C[A[i]]];
X[m[A[i]]]=A[i+1];
}
else if(This[A[i]]==1) Y[m[A[i]]]=A[i+1];
else if(This[A[i]]==2) X[n[A[i]]]=A[i+1];
else if(This[A[i]]==3) Y[n[A[i]]]=A[i+1];
This[A[i]]++;
}
}
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 time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |