Submission #1032767

#TimeUsernameProblemLanguageResultExecution timeMemory
1032767amirhoseinfar1385Mechanical Doll (IOI18_doll)C++17
0 / 100
24 ms7732 KiB
#include "doll.h"
#include<bits/stdc++.h>
using namespace std;
const int maxn=300000+10;
vector<int>c(maxn),x(maxn),y(maxn);
int lnk[maxn],s;

void adde(int u,int v){
  s++;
  x[s]=y[s]=-s;
  if(lnk[u]==0){
    c[u]=-s;
    y[s]=v;
    lnk[u]=s;
    return ;
  } 
  swap(x[lnk[u]],y[lnk[u]]);
  y[lnk[u]]=-s;
  lnk[u]=s;
  y[s]=v;
}

void create_circuit(int M, std::vector<int> A) {
  int n = A.size();
  s=0;  
  int now=0;
  for(int i=0;i<n;i++){
    adde(now,A[i]);
    now=A[i];
  }
  adde(now,0);
  c.resize(M+1);
  for(int i=0;i<s;i++){
    x[i]=x[i+1];
    y[i]=y[i+1];
  }
  x.resize(s);
  y.resize(s);
 /* for(auto i:c){
    cout<<i<<" ";
  }
  cout<<endl;
  for(auto i:x){
    cout<<i<<" ";
  }
  cout<<endl;
  for(auto i:y){
    cout<<i<<" ";
  }
  cout<<endl;*/
  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...