Submission #1174568

#TimeUsernameProblemLanguageResultExecution timeMemory
1174568guagua0407Hidden Sequence (info1cup18_hidden)C++20
59 / 100
3 ms424 KiB
#include "grader.h" //#include "grader.cpp" #include <bits/stdc++.h> using namespace std; #define ll long long #define pii pair<int,int> #define f first #define s second #define all(x) x.begin(),x.end() #define _ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); vector < int > findSequence (int n) { auto ask=[&](int a,int b,int c,int v){ vector<int> vec; for(int i=0;i<a;i++){ vec.push_back(v); } for(int i=0;i<b;i++){ vec.push_back(v^1); } for(int i=0;i<c;i++){ vec.push_back(v); } return isSubsequence(vec); }; int zero=0; int one=0; while(zero<=(n+1)/2){ if(ask(zero,0,0,0)){ zero++; } else{ zero--; break; } } bool iszero=true; if(zero<=(n+1)/2){ one=n-zero; } else{ while(one<=(n+1)/2){ if(ask(0,one,0,0)){ one++; } else{ one--; break; } } one=min(one,(n+1)/2); zero=n-one; iszero=false; } vector<int> res; if(iszero){ vector<int> cnt(zero+1); for(int i=0;i<=zero;i++){ int cur=0; while(zero+cur<=(3*n/4)+1){ if(ask(i,cur,zero-i,0)){ cur++; } else{ cur--; break; } } if(zero+cur<=(3*n/4)+1){ cnt[i]=cur; } else{ cnt[i]=-1; } } int sum=0; for(int i=0;i<=zero;i++){ if(cnt[i]!=-1) sum+=cnt[i]; } for(int i=0;i<=zero;i++){ if(cnt[i]==-1){ cnt[i]=one-sum; } } for(int i=0;i<=zero;i++){ for(int j=0;j<cnt[i];j++){ res.push_back(1); } if(i<zero) res.push_back(0); } } else{ vector<int> cnt(one+1); for(int i=0;i<=one;i++){ int cur=0; while(one+cur<=(3*n/4)+1){ if(ask(i,cur,one-i,1)){ cur++; } else{ cur--; break; } } if(one+cur<=(3*n/4)+1){ cnt[i]=cur; } else{ cnt[i]=-1; } } int sum=0; for(int i=0;i<=one;i++){ if(cnt[i]!=-1) sum+=cnt[i]; } for(int i=0;i<=one;i++){ if(cnt[i]==-1){ cnt[i]=zero-sum; } } for(int i=0;i<=one;i++){ for(int j=0;j<cnt[i];j++){ res.push_back(0); } if(i<one) res.push_back(1); } } return res; }

Compilation message (stderr)

grader.cpp: In function 'int main()':
grader.cpp:28:26: warning: format '%d' expects argument of type 'int', but argument 3 has type 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wformat=]
   28 |     fprintf (fifo_out, "%d\n", ans.size ());
      |                         ~^     ~~~~~~~~~~~
      |                          |              |
      |                          int            std::vector<int>::size_type {aka long unsigned int}
      |                         %ld
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...