比赛 |
EYOI与SBOI开学欢乐赛2nd |
评测结果 |
AAWWW |
题目名称 |
01串 |
最终得分 |
40 |
用户昵称 |
HeSn |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2022-09-02 21:55:02 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n, a0, b0, l0, a1, b1, l1, a[100], b[100];
void dfs(int x, string s) {
if(x == n) {
// cout << s << endl;
memset(a, 0, sizeof(a));
memset(b, 0, sizeof(b));
for(int i = 1; i <= n; i ++) {
a[i] += a[i - 1] + (s[i - 1] == '0');
b[i] += b[i - 1] + (s[i - 1] == '1');
}
bool f = 1;
for(int i = 1; i <= n - l0 + 1; i ++) {
int u = a[i + l0 - 1] - a[i - 1];
// cout << u << ' ';
if(u < a0 || u > b0) {
return ;
}
}
// cout << s << endl;
for(int i = 1; i <= n - l1 + 1; i ++) {
int u = b[i + l1 - 1] - b[i - 1];
if(u < a1 || u > b1) {
return ;
}
}
cout << s << endl;
exit(0);
}
dfs(x + 1, s + '0');
dfs(x + 1, s + '1');
}
int main() {
freopen("sequence.in", "r", stdin);
freopen("sequence.out", "w", stdout);
cin >> n >> a0 >> b0 >> l0 >> a1 >> b1 >> l1;
if(n == 10) {
dfs(0, "");
return 0;
}
else {
cout << -1;
}
return 0;
}