# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1174631 | hengliao | Hidden Sequence (info1cup18_hidden) | C++20 | 3 ms | 484 KiB |
#include<bits/stdc++.h>
#include "grader.h"
using namespace std;
#define F first
#define S second
#define pb push_back
#define vll vector<ll>
#define pll pair<ll, ll>
typedef int ll;
bool qry(ll tar, ll n){
vll re(n);
for(ll i=0;i<n;i++){
re[i]=(tar>>i)&1;
}
return isSubsequence(re);
}
bool sub(ll a, ll b, ll n1, ll n2){
ll pt=0;
ll cnt=0;
for(ll i=0;i<n1;i++){
while(pt<n2 && (((a>>i)&1)!=((b>>pt)&1))){
pt++;
}
if(pt<n2){
pt++;
cnt++;
}
}
return cnt==n1;
}
vector < int > findSequence (int n)
{
vector<bool> good((1LL<<n), 1);
ll len=n/2+1;
for(ll mask=0;mask<(1LL<<len);mask++){
if(qry(mask, len)){
for(ll i=0;i<(1LL<<n);i++){
if(!sub(mask, i, len, n)){
good[i]=0;
}
}
}
else{
for(ll i=0;i<(1LL<<n);i++){
if(sub(mask, i, len, n)){
good[i]=0;
}
}
}
}
for(ll i=0;i<(1LL<<n);i++){
if(good[i]){
vll re(n);
for(ll j=0;j<n;j++){
re[j]=(i>>j)&1;
}
return re;
}
}
assert(false);
return {};
// return re;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |