比赛 EYOI与SBOI开学欢乐赛6th 评测结果 AATATTATTT
题目名称 简短的题目 最终得分 40
用户昵称 Lfc_HeSn 运行时间 6.084 s
代码语言 C++ 内存使用 7.22 MiB
提交时间 2022-09-19 19:30:57
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int MAXN = 100010;
int n, l, r, a[MAXN], c[MAXN], f[MAXN];
void check1() {
	for(int i = 1; i <= n; i ++) {
		if(a[i] != 0) {
			return ;
		}
	}
	for(int i = 1; i <= n; i ++) {
		cout << 0 << ' ';
	}
	exit(0);
} 
void check2() {
	for(int i = 1; i < n; i ++) {
		if(a[i] != a[i + 1]) {
			return ;
		}
	}
	for(int i = 1; i <= n; i ++) {
		cout << r * a[1] << ' ';
	}
	exit(0);
}
void check3() {
	for(int i = 1; i <= n; i ++) {
		if(a[i] != i) {
			return ;
		}
	}
	for(int i = 1; i <= n; i ++) {
		c[i] = c[i - 1] + i;
	}
	for(int i = 1; i <= n; i ++) {
		if(i + r - 1 <= n) {
			cout << c[i + r - 1] - c[i - 1] << ' ';
		}
		else if(n - r + 1 >= 1) {
			cout << c[n] - c[n - r] << ' ';
		}
		else {
			cout << c[n] << ' ';
		}
	}
	exit(0);
}
void check4() {
	for(int i = 1; i <= n; i ++) {
		if(a[i] < 0) {
			return ;
		}
	}
	for(int i = 1; i <= n; i ++) {
		f[i] = c[i + r - 1] - c[i - 1];
	}
	for(int i = 1; i <= n; i ++) {
		
	}
//	exit(0);
}
signed main() {
	freopen("wwydatsv.in", "r", stdin);
	freopen("wwydatsv.out", "w", stdout);
	cin >> n >> l >> r;
	memset(f, -0x3f, sizeof(f));
	for(int i = 1; i <= n; i ++) {
		cin >> a[i];
		c[i] = c[i - 1] + a[i];
	}
	check1();
	check2();
	check3();
	check4();
	for(int i = 1; i <= n; i ++) {
		for(int j = max(1ll, i - r); j <= i; j ++) {
			for(int k = i; k <= min(i + r, n); k ++) {
				if(l > k - j + 1 || r < k - j + 1) {
					continue;
				}
				f[i] = max(f[i], c[k] - c[j - 1]);
			}
		}
		cout << f[i] << ' ';
	}
    return 0;
}