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
AC × 2
AC × 30
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