Submission #1864413
Source Code Expand
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cctype>
#include <algorithm>
using namespace std;
#define rep(i, s, t) for(int i = (s); i <= (t); i++)
#define dwn(i, s, t) for(int i = (s); i >= (t); i--)
int read() {
int x = 0, f = 1; char c = getchar();
while(!isdigit(c)){ if(c == '-') f = -1; c = getchar(); }
while(isdigit(c)){ x = x * 10 + c - '0'; c = getchar(); }
return x * f;
}
#define maxn 5010
#define maxm 210
#define LL long long
int n, m, A[maxn], d[maxn][maxm], mxd[maxn][maxm], nowmx[maxm], lid[maxn];
LL mxsum[maxn];
int main() {
srand(10);
n = read(); m = read();
rep(i, 1, n - 1) A[i] = read();
rep(i, 1, n) rep(j, 1, m) d[i][j] = read();
dwn(i, n, 1) rep(j, 1, m) mxd[i][j] = max(mxd[i+1][j], d[i][j]), mxsum[i] += mxd[i][j];
LL ans = 0;
rep(i, 1, n) lid[i] = i; random_shuffle(lid + 1, lid + n + 1);
rep(L, 1, n) {
int l = lid[L];
memset(nowmx, 0, sizeof(nowmx));
LL nowdis = 0;
rep(r, l, n) {
LL sum = 0;
rep(i, 1, m) nowmx[i] = max(nowmx[i], d[r][i]), sum += nowmx[i];
ans = max(ans, sum - nowdis);
if(ans >= mxsum[l] - nowdis) break;
nowdis += A[r];
}
}
printf("%lld\n", ans);
return 0;
}
Submission Info
Submission Time |
|
Task |
F - Yakiniku Restaurants |
User |
LazyJazz |
Language |
C++14 (GCC 5.4.1) |
Score |
1000 |
Code Size |
1249 Byte |
Status |
AC |
Exec Time |
1744 ms |
Memory |
8576 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
1000 / 1000 |
Status |
|
|
Set Name |
Test Cases |
Sample |
sample_01.txt, sample_02.txt |
All |
sample_01.txt, sample_02.txt, subtask_1_dense_max_01.txt, subtask_1_dense_max_02.txt, subtask_1_dense_max_03.txt, subtask_1_dense_max_04.txt, subtask_1_dense_rand_01.txt, subtask_1_dense_rand_02.txt, subtask_1_dense_rand_03.txt, subtask_1_dense_rand_04.txt, subtask_1_max_01.txt, subtask_1_max_02.txt, subtask_1_max_03.txt, subtask_1_max_04.txt, subtask_1_min_01.txt, subtask_1_min_02.txt, subtask_1_rand_01.txt, subtask_1_rand_02.txt, subtask_1_rand_03.txt, subtask_1_rand_04.txt, subtask_1_widemax_01.txt, subtask_1_widemax_02.txt, subtask_1_widemax_03.txt, subtask_1_widemax_04.txt, subtask_1_widemax_05.txt, subtask_1_widemax_06.txt, subtask_1_widemax_07.txt, subtask_1_widemax_08.txt, subtask_1_widemax_09.txt, subtask_1_widemax_10.txt |
Case Name |
Status |
Exec Time |
Memory |
sample_01.txt |
AC |
2 ms |
2304 KB |
sample_02.txt |
AC |
2 ms |
2304 KB |
subtask_1_dense_max_01.txt |
AC |
1660 ms |
8576 KB |
subtask_1_dense_max_02.txt |
AC |
1744 ms |
8576 KB |
subtask_1_dense_max_03.txt |
AC |
1733 ms |
8576 KB |
subtask_1_dense_max_04.txt |
AC |
1621 ms |
8576 KB |
subtask_1_dense_rand_01.txt |
AC |
849 ms |
8448 KB |
subtask_1_dense_rand_02.txt |
AC |
983 ms |
8448 KB |
subtask_1_dense_rand_03.txt |
AC |
9 ms |
2944 KB |
subtask_1_dense_rand_04.txt |
AC |
101 ms |
3968 KB |
subtask_1_max_01.txt |
AC |
116 ms |
8576 KB |
subtask_1_max_02.txt |
AC |
116 ms |
8576 KB |
subtask_1_max_03.txt |
AC |
116 ms |
8576 KB |
subtask_1_max_04.txt |
AC |
116 ms |
8576 KB |
subtask_1_min_01.txt |
AC |
2 ms |
2304 KB |
subtask_1_min_02.txt |
AC |
2 ms |
2304 KB |
subtask_1_rand_01.txt |
AC |
20 ms |
3072 KB |
subtask_1_rand_02.txt |
AC |
9 ms |
3840 KB |
subtask_1_rand_03.txt |
AC |
20 ms |
3456 KB |
subtask_1_rand_04.txt |
AC |
20 ms |
8448 KB |
subtask_1_widemax_01.txt |
AC |
1274 ms |
8576 KB |
subtask_1_widemax_02.txt |
AC |
1362 ms |
8576 KB |
subtask_1_widemax_03.txt |
AC |
896 ms |
8576 KB |
subtask_1_widemax_04.txt |
AC |
301 ms |
8576 KB |
subtask_1_widemax_05.txt |
AC |
365 ms |
8576 KB |
subtask_1_widemax_06.txt |
AC |
312 ms |
8576 KB |
subtask_1_widemax_07.txt |
AC |
501 ms |
8576 KB |
subtask_1_widemax_08.txt |
AC |
1147 ms |
8576 KB |
subtask_1_widemax_09.txt |
AC |
216 ms |
8576 KB |
subtask_1_widemax_10.txt |
AC |
215 ms |
8576 KB |