# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1143029 | Agageldi | Hidden Sequence (info1cup18_hidden) | C++17 | 0 ms | 0 KiB |
#include<bits/stdc++.h>
#include "grader.cpp"
#include "grader.h"
#define pb push_back
#define sz(s) (int)s.size()
using namespace std;
int n, m, a[500];
vector <int> ask, bir, nol;
string s, g;
vector < int > findSequence (int N)
{
int cnt0 = 0, cnt1 = 0;
for (int i = 0; i < 1000; i++) {
bir.push_back(1);
nol.push_back(0);
if (!isSubsequence(bir)) {
cnt1 = i;
cnt0 = N - cnt1;
break;
}
if(!isSubsequence(nol)) {
cnt0 = i;
cnt1 = N - cnt0;
break;
}
}
bir.clear();
int tr = 0;
while(cnt1 > 0 && cnt0 > 0) {
ask.clear();
if(cnt0 < cnt1 || cnt0 == cnt1 && tr == 2) {
ask.pb(1);
tr = 1;
for(int i = 1; i <= cnt0; i++) {
ask.pb(0);
}
if(!isSubsequence(ask)) {
bir.pb(0);
cnt0--;
}
else {
bir.pb(1);
cnt1--;
}
continue;
}
tr = 2;
ask.pb(0);
for(int i = 1; i <= cnt1; i++) {
ask.pb(1);
}
if(isSubsequence(ask)) {
bir.pb(0);
cnt0--;
}
else {
bir.pb(1);
cnt1--;
}
}
while(cnt1--) bir.pb(1);
while(cnt0--) bir.pb(0);
return bir;
}