Submission #317593

#TimeUsernameProblemLanguageResultExecution timeMemory
317593daniel920712Hidden Sequence (info1cup18_hidden)C++14
59 / 100
147 ms384 KiB
#include<bits/stdc++.h> #include "grader.h" using namespace std; vector < pair < vector < int > , int > > all; vector < int > temp; vector < int > tt; vector < int > ans; vector < int > ans2; vector < int > ans3; set < int > have; vector < int > Not; int con[5005]={0}; vector < int > findSequence (int N) { int i,j,k,l,ok=0,now=0,x1=0,y1=0,x,y; if(N==10) { for(i=0;i<(1<<(N/2+1));i++) { temp.clear(); for(j=0;j<(N/2+1);j++) { if(i&(1<<j)) temp.push_back(1); else temp.push_back(0); } all.push_back(make_pair(temp,isSubsequence(temp))); } for(i=0;i<(1<<N);i++) { temp.clear(); for(j=0;j<N;j++) { if(i&(1<<j)) temp.push_back(1); else temp.push_back(0); } ok=1; for(auto j:all) { now=0; for(auto k:temp) { if(now<N/2+1&&k==j.first[now]) now++; } if(now==N/2+1&&j.second==0) ok=0; if(now!=N/2+1&&j.second==1) ok=0; } if(ok) return temp; } temp.clear(); return temp; } else { for(i=0;i<N/2+1;i++) { temp.push_back(0); if(!isSubsequence(temp)) { x=i; break; } } temp.clear(); if(i==N/2+1) { for(i=0;i<N/2+1;i++) { temp.push_back(1); if(!isSubsequence(temp)) { x=N-i; break; } } } y=N-x; if(x<=N/2) { con[x+1]=N-x; for(i=1;i<=x;i++) { //printf("%d %d\n",i,x); ok=0; for(j=0;j+(x-i+1)<=N/2+1;j++) { temp.clear(); for(k=0;k<j;k++) temp.push_back(1); for(k=0;k<x-i+1;k++) temp.push_back(0); if(!isSubsequence(temp)) { ok=1; con[i]=j-1; break; } } if(!ok) { for(j=0;1;j++) { temp.clear(); for(k=0;k<i;k++) temp.push_back(0); for(k=0;k<j;k++) temp.push_back(1); if(!isSubsequence(temp)) { con[i]=y-j+1; break; } } } } //printf("%d %d\n",i,x); now=0; for(i=1;i<=x;i++) { while(now<con[i]) { ans.push_back(1); now++; } ans.push_back(0); } while(now<con[i]) { ans.push_back(1); now++; } return ans; } else { for(i=0;i<=y;i++) have.insert(i); for(i=1;have.size()>1;i++) { Not.clear(); for(auto j:have) { temp.clear(); for(k=0;k<=y;k++) { if(j==k) for(l=0;l<i;l++) temp.push_back(0); if(k!=y) temp.push_back(1); } if(!isSubsequence(temp)) { //printf("bb %d\n",j); con[j]=i-1; x-=(i-1); Not.push_back(j); } } for(auto j:Not) have.erase(j); } if(!have.empty()) con[*have.begin()]=x; for(i=0;i<=y;i++) { for(j=0;j<con[i];j++) ans.push_back(0); if(i!=y) ans.push_back(1); } return ans; } } }

Compilation message (stderr)

hidden.cpp: In function 'std::vector<int> findSequence(int)':
hidden.cpp:17:28: warning: unused variable 'x1' [-Wunused-variable]
   17 |     int i,j,k,l,ok=0,now=0,x1=0,y1=0,x,y;
      |                            ^~
hidden.cpp:17:33: warning: unused variable 'y1' [-Wunused-variable]
   17 |     int i,j,k,l,ok=0,now=0,x1=0,y1=0,x,y;
      |                                 ^~
hidden.cpp:17:38: warning: 'x' may be used uninitialized in this function [-Wmaybe-uninitialized]
   17 |     int i,j,k,l,ok=0,now=0,x1=0,y1=0,x,y;
      |                                      ^
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
grader.cpp:29:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |     for (int i=0; i<ans.size () && i < N; i++)
      |                   ~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...