#include <iostream>
#include <vector>
#include "grader.h"
using namespace std;
int pre[1005], suf[1005];
vector<int> get(int c1, int a, int c2 = 0, int b = 0){
vector<int> vec;
for (int i=1;i<=c1;i++)
vec.push_back(a);
for (int i=1;i<=c2;i++)
vec.push_back(b);
return vec;
}
vector<int> findSequence(int n){
int z = 0, o = 1, Co = 0, Cz = 0, lim = n / 2 + 1;
if (isSubsequence(get((n + 1) / 2, z)))
swap(z, o);
for (int i=(n + 1) / 2;i>=0;i--){
if (i == 0)
return get(n, o);
if (isSubsequence(get(i, z)))
Cz = i, Co = n - i, i = -1;
}
for (int i=Cz, num = 0;i>=1;i--){
while (i + num + 1 <= lim and isSubsequence(get(i, z, num + 1, o)))
num++;
suf[i] = num;
}
for (int i=1, num = 0;i<=Cz;i++){
while (Cz - i + 1 + num + 1 <= lim and isSubsequence(get(num + 1, o, Cz - i + 1, z)))
num++;
pre[i] = num;
}
vector<int> ans;
suf[0] = min(lim, Co);
for (int i=1, cur;i<=Cz;i++){
if (pre[i] + Cz - i + 1 != lim)
cur = pre[i] - pre[i-1];
else if (i - 1 + suf[i-1] != lim)
cur = suf[i-1] - suf[i];
else
cur = n - Cz - suf[i] - pre[i-1];
while (cur--)
Co--, ans.push_back(o);
ans.push_back(z);
}
while (Co--)
ans.push_back(o);
return ans;
}
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 time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |