This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "doll.h"
#include<bits/stdc++.h>
using namespace std;
int a,b,c,d,e,i,j,ii,jj,zx,xc,N,M,cnt,pas;
vector <int> A,C,X,Y;
/*void answer(std::vector<int> C, std::vector<int> X, std::vector<int> Y){
cout<<"C: "<<C.size()<<endl;
for(i=0; i<C.size(); i++){
cout<<C[i]<<" ";
}
cout<<endl;
cout<<"X: "<<X.size()<<endl;
for(i=0; i<X.size(); i++){
cout<<X[i]<<" ";
}
cout<<endl;
cout<<"Y: "<<Y.size()<<endl;
for(i=0; i<Y.size(); i++){
cout<<Y[i]<<" ";
}
cout<<endl;
exit(0);
}*/
void rec(int q){
if(q==2){
cnt++;
X.push_back(0);
Y.push_back(0);
c=1;d=1;
C[1]=-1;
X[0]=1;Y[0]=0;
return;
}
if(q%2==0){
rec(q/2);
cnt++;
X.push_back(0);
Y.push_back(0);
X[cnt-1]=1;Y[cnt-1]=0;
Y[d-1]=-cnt;
}else{
rec(q-1);
cnt+=2;
X.push_back(0);X.push_back(0);
Y.push_back(0);Y.push_back(0);
X[cnt-1]=1;Y[cnt-1]=0;
Y[d-1]=-cnt;
X[cnt-2]=-c;Y[cnt-2]=-cnt;
C[1]=-(cnt-1);
}
}
void create_circuit(int M, vector<int> AA) {
N=AA.size();
for(i=0; i<N; i++){
A.push_back(AA[i]);
}
C.resize(M+1);
if(M==1&&N!=1){
C[0]=1;
cnt=0;
rec(N);
answer(C,X,Y);
exit(0);
}
C[0]=A[0];
for(i=0; i<N-1; i++){
C[A[i]]=A[i+1];
}
C[A[N-1]]=0;
answer(C,X,Y);
}
/*int main(){
ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0);
cin>>b>>a;
vector <int> AA;
for(i=1; i<=a; i++){
cin>>c;
AA.push_back(c);
}
create_circuit(b,AA);
return 0;
}*/
# | 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... |