제출 #152897

#제출 시각아이디문제언어결과실행 시간메모리
152897SegtreeMechanical Doll (IOI18_doll)C++14
0 / 100
1 ms204 KiB
#include "doll.h"
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
typedef long long ll;
#define mod 1000000007
ll tap(ll x){
    ll t=2;
    while(t<x)t*=2;
    return t;
}
void create_circuit(int M,vector<int> A){
    ll n=tap(A.size()+1); //cout<<"---"<<n<<endl;
    vector<int> c(M+1),x(n-1),y(n-1);
    c[0]=1,c[1]=-1;
    for(int i=1;i<n;i++){
	x[i-1]=-(i*2);
	y[i-1]=-(i*2+1);
    }
    bool first=1;
    ll cnt=A.size();
    for(int i=0;i<n/2;i++){
	for(int j=0;j<2;j++){
	    if(first){
		if(j==0)x[i+n/2-1]=0;
		if(j==1)y[i+n/2-1]=0;
	    }
	    else if(cnt>0){
		if(j==0)x[i+n/2-1]=1;
		if(j==1)y[i+n/2-1]=1;
		cnt--;
	    }
	    else{
		if(j==0)x[i+n/2-1]=-1;
		if(j==1)y[i+n/2-1]=-1;
	    }
	}
    }
    /*
    cout<<"C:";
    for(int i=0;i<c.size();i++)cout<<c[i]<<" "; cout<<endl;
    cout<<"X:"<<endl;
    for(int i=0;i<x.size();i++)cout<<x[i]<<" "<<y[i]<<endl;*/
    answer(c,x,y);
}
/*
int main(){
  vector<int> A;
  for(int i=0;i<7;i++)A.push_back(i);
  
  create_circuit(1,A);
  return 0;
}*/
#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...