# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
689871 | 2023-01-29T15:33:23 Z | alexdd | Hidden Sequence (info1cup18_hidden) | C++17 | 24 ms | 208 KB |
#include<bits/stdc++.h> #include "grader.h" using namespace std; int n; int totx,toty; int suff[205];///suff[i] = cate y-uri exista dupa al i-lea x int cate[205]; int limit; vector<int> solve(int x, int y)///avem mai putine x-uri decat y-uri { vector<int> allx; for(int i=1;i<=(n+1)/2;i++) allx.push_back(x); for(int i=(n+1)/2;i>=0;i--) { if(isSubsequence(allx)) { totx=i; toty=n-i; break; } allx.pop_back(); } if(totx==0) { allx.clear(); for(int i=1;i<=n;i++) allx.push_back(y); return allx; } vector<int> aux; bool bl=0; int unde; for(int i=totx;i>0;i--) { ///calc suff[i] if(i+suff[i+1]>totx || bl)///punem x-uri dupa { ///folosim totx + cnty aux.clear(); for(int j=1;j<=totx;j++) aux.push_back(x); cate[i]=0; for(int j=1;j<=toty;j++) { aux.insert(aux.begin()+i,y); if(aux.size()>limit && !bl) { cate[i]=-1; bl=1; unde=i; break; } if(!isSubsequence(aux)) break; suff[i]=j; } if(!bl) suff[i]=cate[i]+suff[i+1]; else suff[i]=-1; } else///nu punem nimic dupa { ///folosim i + cnty + suff[i+1] aux.clear(); for(int j=1;j<=i;j++) aux.push_back(x); suff[i]=0; for(int j=1;j<=toty;j++) { aux.push_back(y); if(aux.size()>limit && !bl) { bl=1; suff[i]=-1; cate[i]=-1; unde=i; break; } if(!isSubsequence(aux)) break; suff[i]=j; } cate[i] = suff[i]-suff[i+1]; } } cate[0] = toty - suff[1]; suff[0] = toty; if(bl) { int sum=0; for(int i=0;i<unde;i++) { sum+=cate[i]; } cate[unde] = toty - sum - suff[unde+1]; suff[unde] = cate[unde] + suff[unde+1]; } vector<int> sol; for(int i=0;i<=totx;i++) { for(int j=1;j<=suff[i]-suff[i+1];j++) sol.push_back(y); if(i<totx) sol.push_back(x); } return sol; } vector<int>findSequence(int N) { n=N; limit = n/2 + 3; vector<int> all0; for(int i=1;i<=(n+1)/2;i++) { all0.push_back(0); } if(!isSubsequence(all0)) return solve(0,1); else return solve(1,0); } /** presupunem ca exista mai putine 0-uri decat 1-uri */
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Partially correct | 1 ms | 208 KB | Output is partially correct: Maximum length of a query = 6 |
2 | Partially correct | 1 ms | 208 KB | Output is partially correct: Maximum length of a query = 8 |
3 | Partially correct | 1 ms | 208 KB | Output is partially correct: Maximum length of a query = 6 |
4 | Incorrect | 1 ms | 208 KB | Output is not correct: The length of the returned sequence is not N |
5 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 24 ms | 208 KB | Output is not correct: The length of the returned sequence is not N |
2 | Halted | 0 ms | 0 KB | - |