Submission #1320853

#TimeUsernameProblemLanguageResultExecution timeMemory
1320853hoangmc2009Hidden Sequence (info1cup18_hidden)C++17
0 / 100
32 ms416 KiB
#include<bits/stdc++.h> using namespace std; #ifndef Graven #include "grader.h" #endif #ifdef Graven int maxQ=0; vector<int> F; bool isSubsequence(const vector<int>& v) { if (v.size()>maxQ) maxQ=v.size(); for(int i=0,j=0;i<v.size();++i) { while(j<F.size() and v[i]!=F[j]) ++j; if(j==F.size()) return false; else ++j; } return true; } #endif vector<int> findSequence (int N) { int c0=-1,c1=-1,L=(3*N)/4+1; vector<int> tmp,res; for(int i=1;i<=(N/2+1);++i) { tmp.push_back(0); if(!isSubsequence(tmp)) { c0=i-1; c1=N-c0; break; } } if(c0==-1) { tmp.clear(); for(int i=1;i<=(N/2+1);++i) { tmp.push_back(1); if(!isSubsequence(tmp)) { c1=i-1; c0=N-c0; break; } } } tmp.clear(); if(c0<=c1) { for(int i=1;i<=c0;++i) tmp.push_back(0); for(int i=tmp.size(),cc1=0;i>=0;--i) { while(tmp.size()<L) tmp.push_back(1); int del=0; while(!isSubsequence(tmp)) { tmp.pop_back(); ++del; } if(tmp.size()==L) {while(tmp.size()<N-del) tmp.push_back(1);} for(int j=0;j<cc1;++j) tmp.pop_back(); while(!tmp.empty() and tmp.back()==1) { res.push_back(1); tmp.pop_back(); ++cc1; } if(i>0) { res.push_back(0); tmp.pop_back(); } } } else { for(int i=1;i<=c1;++i) tmp.push_back(1); for(int i=tmp.size(),cc0=0;i>=0;--i) { while(tmp.size()<L) tmp.push_back(0); int del=0; while(!isSubsequence(tmp)) { tmp.pop_back(); ++del; } if(tmp.size()==L) {while(tmp.size()<N-del) tmp.push_back(0);} for(int j=0;j<cc0;++j) tmp.pop_back(); while(!tmp.empty() and tmp.back()==0) { res.push_back(0); tmp.pop_back(); ++cc0; } if(i>0) { res.push_back(1); tmp.pop_back(); } } } reverse(res.begin(),res.end()); return res; } #ifdef Graven int main() { int n,x; cin>>n; maxQ=0; for(int i=1;i<=n;++i) { cin>>x; F.push_back(x); } vector<int> G=findSequence(n); if(G.size()!=F.size()) { cout<<"Different lengths: "<<G.size()<<"!="<<n<<"\n"; for(int& x:G) cout<<x<<" "; cout<<'\n'; return 0; } for(int i=0;i<G.size();++i) { if(G[i]!=F[i]) { cout<<"WA postion at "<<i+1<<'\n'; for(int& x:G) cout<<x<<" "; cout<<'\n'; return 0; } } cout<<"Ok, biggest queried length "<<maxQ; return 0; } #endif

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...