# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
689878 | 2023-01-29T15:45:24 Z | alexdd | Hidden Sequence (info1cup18_hidden) | C++17 | 61 ms | 308 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(bl || i+suff[i+1]>totx)///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; cate[i]=j; } suff[i]=cate[i]+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]; } } if(bl) { int sum=0; for(int i=0;i<unde;i++) sum+=cate[i]; cate[unde] = toty - sum - suff[unde+1]; } vector<int> sol; for(int i=0;i<=totx;i++) { for(int j=1;j<=cate[i];j++) sol.push_back(y); if(i<totx) sol.push_back(x); } return sol; } vector<int>findSequence(int N) { n=N; if(n<=10) limit = n/2 + 3; else limit = (3*n)/4 + 1; 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 | 0 ms | 208 KB | Output is partially correct: Maximum length of a query = 6 |
4 | Partially correct | 0 ms | 208 KB | Output is partially correct: Maximum length of a query = 7 |
5 | Partially correct | 0 ms | 208 KB | Output is partially correct: Maximum length of a query = 5 |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Partially correct | 25 ms | 304 KB | Output is partially correct: Maximum length of a query = 85 |
2 | Correct | 20 ms | 208 KB | Output is correct: Maximum length of a query = 90 |
3 | Partially correct | 50 ms | 288 KB | Output is partially correct: Maximum length of a query = 99 |
4 | Partially correct | 20 ms | 208 KB | Output is partially correct: Maximum length of a query = 83 |
5 | Partially correct | 48 ms | 296 KB | Output is partially correct: Maximum length of a query = 99 |
6 | Partially correct | 22 ms | 208 KB | Output is partially correct: Maximum length of a query = 100 |
7 | Partially correct | 29 ms | 208 KB | Output is partially correct: Maximum length of a query = 135 |
8 | Partially correct | 18 ms | 208 KB | Output is partially correct: Maximum length of a query = 95 |
9 | Partially correct | 13 ms | 304 KB | Output is partially correct: Maximum length of a query = 108 |
10 | Partially correct | 57 ms | 308 KB | Output is partially correct: Maximum length of a query = 103 |
11 | Correct | 60 ms | 284 KB | Output is correct: Maximum length of a query = 96 |
12 | Partially correct | 4 ms | 208 KB | Output is partially correct: Maximum length of a query = 149 |
13 | Partially correct | 61 ms | 208 KB | Output is partially correct: Maximum length of a query = 106 |