#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 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... |