Submission #1024871

#TimeUsernameProblemLanguageResultExecution timeMemory
1024871MalixMechanical Doll (IOI18_doll)C++14
16 / 100
52 ms12640 KiB
#include "doll.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef vector<int> vi; typedef vector<vi> vii; typedef pair<int,int> pi; typedef vector<pi> pii; typedef tuple<int,int,int> tii; #define REP(i,a,b) for(int i=a;i<b;i++) #define F first #define S second #define PB push_back #define MP make_pair #define LSOne(s) ((s)&(-s)) ll INF=1e18+10; int inf=1e9+10; ll M=1e9+7; void create_circuit(int M, std::vector<int> A) { int n=A.size(); vi c,x,y; vi a(M+1,0); vii b(M+1); REP(i,0,n)a[A[i]]++; REP(i,0,n-1)b[A[i]].PB(A[i+1]); b[A[n-1]].PB(0); c.resize(M+1,0); c[0]=A[0]; int k=0; REP(i,1,M+1){ if(a[i]==0)continue; if(a[i]==1)c[i]=b[i][0]; else if(a[i]==2){ c[i]=k-1; k--; x.PB(b[i][0]); y.PB(b[i][1]); } else if(a[i]==3){ c[i]=k-1; k--; x.PB(k-1); y.PB(k-2); x.PB(k); y.PB(b[i][1]); x.PB(b[i][0]); y.PB(b[i][2]); k-=2; } else{ c[i]=k-1; k--; x.PB(k-1); y.PB(k-2); x.PB(b[i][0]); y.PB(b[i][2]); x.PB(b[i][1]); y.PB(b[i][3]); k-=2; } } // for(auto u:c)cerr<<u<<" "; // cerr<<"\n"; // for(auto u:x)cerr<<u<<" "; // cerr<<"\n"; // for(auto u:y)cerr<<u<<" "; // cerr<<"\n"; 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...