Submission #1286828

#TimeUsernameProblemLanguageResultExecution timeMemory
1286828m.zeeshanrashidMechanical Doll (IOI18_doll)C++20
37 / 100
43 ms10516 KiB
#include "doll.h" #include <bits/stdc++.h> using namespace std; #define elif else if #define all(l) begin(l),end(l) #define rall(l) rbegin(l),rend(l) #define append push_back #define print(l) for(auto i:l) cout<<i<<' '; cout<<endl; #define pprint(a,b) cout<<a<<' '<<b<<endl; #define inp(l) for(auto &i:l) cin>>i; #define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update> #define pai make_pair #define endl "\n" #define pii pair<int,int> #define fi first #define se second #define vec vector vec<int>ord(int n){ if(n==1) return {0}; vec<int>ans; for(auto i:ord(n/2)){ ans.append(i); ans.append(i+n/2); } return ans; } void create_circuit(int m, std::vector<int> a) { a.append(0); int n=a.size(); if(n==1){ vec<int>x,y; vec<int>c(m+1,0); c[0]=a[0]; answer(c,x,y); return; } int p=1; while(p<n) p*=2; p>>=1; vec<int>c(m+1,-1),x(p,-1e8),y(p,-1e8); vec<int>o=ord(p*2); // print(o) // for(int i=0;i<n;i++){ // if(o[i]%2==0) x[o[i]/2]=a[i]; // else y[o[i]/2]=a[i]; // } for(int i=0;i<n-1;i++){ if(o[i]%2==0) x[o[i]/2]=a[i]; else y[o[i]/2]=a[i]; } for(int i=0;i<p;i++){ if(x[i]<-p){ // x[i]=-i-p; // y[i]=-1; x[i]=-1; } elif(y[i]<-p){ // y[i]=x[i]; // x[i]=-i-p; y[i]=-1; } } y[y.size()-1]=0; vec<int>x1(p-1),y1(p-1); for(int i=0;i<p-1;i++) x1[i]=-(i+1)*2; for(int i=0;i<p-1;i++) y1[i]=x1[i]-1; for(int i=0;i<p;i++){ x1.append(x[i]); y1.append(y[i]); } // for(int i=0;i<x1.size();i++){ // cout<<x1[i]<<' '<<y1[i]<<endl; // } answer(c,x1,y1); }
#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...