# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
96489 | KLPP | Hidden Sequence (info1cup18_hidden) | C++14 | 380 ms | 580 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
#include "grader.h"
using namespace std;
vector < int > findSequence (int N)
{
int zeros,ones;
zeros=-1;
ones=-1;
for(int i=1;i<=N/2+1;i++){
vector<int> query(i);
for(int j=0;j<i;j++)query[j]=0;
if(!isSubsequence(query)){
zeros=i-1;
i=N/2+1;
}
}
if(zeros!=-1)ones=N-zeros;
for(int i=1;i<=N/2+1;i++){
vector<int> query(i);
for(int j=0;j<i;j++)query[j]=1;
if(!isSubsequence(query)){
ones=i-1;
i=N/2+1;
}
}
if(ones!=-1)zeros=N-ones;
vector<int> ans;
if(zeros==0){
for(int i=0;i<N;i++)ans.push_back(1);
return ans;
}
if(ones==0){
for(int i=0;i<N;i++)ans.push_back(0);
return ans;
}
vector<int> query;
int obj=0;
if(zeros>=ones){
obj=1;
swap(ones,zeros);
}
int maxLength=N/2;
maxLength++;
//cout<<obj<<" "<<zeros<<" "<<ones<<" "<<maxLength<<endl;
int answer[zeros+1][zeros+1];
for(int a=0;a<=zeros;a++){
for(int b=0;a+b<=zeros;b++){
int lo,hi;
lo=0;
hi=maxLength-a-b+1;
//cout<<hi<<endl;
while(hi-lo>1){//cout<<hi<<" "<<lo<<endl;
int mid=(lo+hi)/2;
//cout<<"M"<<mid<<endl;
for(int i=0;i<a;i++)query.push_back(obj);
for(int i=0;i<mid;i++)query.push_back(1-obj);
for(int i=0;i<b;i++)query.push_back(obj);
//cout<<"Sz"<<query.size()<<endl;
/*for(int i=0;i<query.size();i++)cout<<query[i]<<" ";
cout<<endl;*/
if(!isSubsequence(query)){
hi=mid;
}else lo=mid;
query.clear();
}//cout<<hi<<" "<<lo<<endl;
answer[a][b]=lo;
//cout<<lo<<" ";
}//cout<<endl;
}
int S[zeros+1];
for(int i=0;i<=zeros;i++){
S[i]=answer[0][zeros-i];
for(int j=0;j<i;j++)S[i]=max(S[i],S[j]+answer[j+1][zeros-i]);
}
int D[zeros+1];
D[0]=S[0];
for(int i=0;i<zeros;i++)D[i+1]=S[i+1]-S[i];
for(int i=0;i<=zeros;i++){
for(int j=0;j<D[i];j++)ans.push_back(1-obj);
if(i!=zeros)ans.push_back(obj);
}
return ans;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |