比赛 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;
}