Submission #1865004


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], St[maxm][maxn], top[maxm];
LL add[maxn];

int main() {
	
	n = read(); m = read();
	rep(i, 1, n - 1) A[i] = read();
	rep(i, 1, n) rep(j, 1, m) d[i][j] = read();
	
	LL ans = 0;
	dwn(l, n, 1) {
		LL dis = 0, sum = 0;
		rep(i, 1, m) {
			while(top[i] && d[St[i][top[i]]][i] <= d[l][i]) {
				if(top[i] > 1) add[St[i][top[i]-1]] -= d[St[i][top[i]-1]][i] - d[St[i][top[i]]][i];
				top[i]--;
			}
			St[i][++top[i]] = l;
			if(top[i] > 1) add[St[i][top[i]-1]] += d[St[i][top[i]-1]][i] - d[l][i];
			sum += d[l][i];
		}
		rep(r, l, n) sum += add[r], ans = max(ans, sum - dis), dis += A[r];
	}
	
	printf("%lld\n", ans);
	
	return 0;
}

Submission Info

Submission Time
Task F - Yakiniku Restaurants
User wzj52501
Language C++14 (GCC 5.4.1)
Score 1000
Code Size 1198 Byte
Status AC
Exec Time 112 ms
Memory 7040 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 112 ms 6912 KB
subtask_1_dense_max_02.txt AC 112 ms 6912 KB
subtask_1_dense_max_03.txt AC 112 ms 6912 KB
subtask_1_dense_max_04.txt AC 112 ms 6912 KB
subtask_1_dense_rand_01.txt AC 69 ms 6912 KB
subtask_1_dense_rand_02.txt AC 76 ms 6912 KB
subtask_1_dense_rand_03.txt AC 4 ms 2432 KB
subtask_1_dense_rand_04.txt AC 17 ms 2560 KB
subtask_1_max_01.txt AC 112 ms 6912 KB
subtask_1_max_02.txt AC 112 ms 6912 KB
subtask_1_max_03.txt AC 112 ms 6912 KB
subtask_1_max_04.txt AC 112 ms 6912 KB
subtask_1_min_01.txt AC 2 ms 2304 KB
subtask_1_min_02.txt AC 1 ms 2304 KB
subtask_1_rand_01.txt AC 18 ms 4736 KB
subtask_1_rand_02.txt AC 10 ms 2432 KB
subtask_1_rand_03.txt AC 20 ms 4736 KB
subtask_1_rand_04.txt AC 30 ms 4480 KB
subtask_1_widemax_01.txt AC 112 ms 6912 KB
subtask_1_widemax_02.txt AC 112 ms 6912 KB
subtask_1_widemax_03.txt AC 111 ms 7040 KB
subtask_1_widemax_04.txt AC 112 ms 6912 KB
subtask_1_widemax_05.txt AC 111 ms 6912 KB
subtask_1_widemax_06.txt AC 112 ms 6912 KB
subtask_1_widemax_07.txt AC 111 ms 6912 KB
subtask_1_widemax_08.txt AC 112 ms 6912 KB
subtask_1_widemax_09.txt AC 111 ms 6912 KB
subtask_1_widemax_10.txt AC 112 ms 6912 KB