比赛 |
EYOI与SBOI开学欢乐赛6th |
评测结果 |
AATATTATTT |
题目名称 |
简短的题目 |
最终得分 |
40 |
用户昵称 |
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;
}