Submission #1355283

#TimeUsernameProblemLanguageResultExecution timeMemory
1355283settopMechanical Doll (IOI18_doll)C++20
6 / 100
48 ms7372 KiB
#include "doll.h"
#include<bits/stdc++.h>

using namespace std;
#define ll long long
#define fall(i,a,b) for(int i=a;i<=b;i++)
#define rfall(i,a,b) for(int i=a;i>=b;i--)
#define sz(x) (int) x.size()
#define pb push_back
#define all(x) (int)x.size()
const int MAXN=9e4+10;
const ll inf=1e17;
typedef pair<int,int> pii;

void create_circuit(int M, std::vector<int> A) {
  int cur=1; 
  set<int> st; st.insert(1);
  vector<int> x,y,pt(M+1); x.pb(A[0]); y.pb(0);

  pt[0]=-1;
  fall(i,0,sz(A)-1){
    auto u=A[i];
    if(i==sz(A)-1){
      if(!pt[u]){
        pt[u]=-*st.rbegin();
      }
      st.erase(-pt[u]);
      int at=pt[u];
      while(sz(st)){
        int a=*st.begin(); st.erase(a);
        y[-at-1]=-a;
        at=-a;
      }
      y[-at-1]=0;
      continue;
    }
    if(pt[u]){
      st.erase(-pt[u]);
      y[-pt[u]-1]=A[i+1];
    }
    else{
      cur++;
      st.insert(cur);
      pt[u]=-cur;
      y.pb(0);
      x.pb(A[i+1]);
    }
  }
  answer(pt,x,y);
}

/*int main(){
  int m,n; cin>>m>>n;
  vector<int> A(n);
  for(auto &u:A) cin>>u;
  create_circuit(m,A);
}*/
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...