Submission #3005749


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
using lint = long long int;
#define FOR(i, begin, end) for(int i=(begin);i<(end);i++)
#define IFOR(i, begin, end) for(int i=(end)-1;i>=(begin);i--)
#define REP(i, n) FOR(i,0,n)
#define IREP(i, n) IFOR(i,0,n)

int N, M;
constexpr int Nmax = 5000;
constexpr int Mmax = 200;

array<lint, Nmax> X;
array<array<lint, Mmax>, Nmax> B;

array<deque<int>, Mmax> argmax;
int l, r;

lint res;

using pint = pair<int, int>;
map<pint, lint> results;

void increment_r()
{
    r++;
    REP(m, M)
    {
        while (argmax[m].size() && B[argmax[m].back()][m] <= B[r][m]) argmax[m].pop_back();
        argmax[m].push_back(r);
    }

    lint res_tmp = X[l] - X[r];
    REP(m, M) res_tmp += B[argmax[m][0]][m];
    results[pint(l, r)] = res_tmp;
    res = max(res, res_tmp);
}

bool searchl()
{
    REP(m, M) {
        int ltmp = argmax[m][0];
        if (results.count(pint(ltmp, r))) continue;
        lint sum = X[ltmp] - X[r];
        REP(ms, M) {
            sum += B[*lower_bound(argmax[ms].begin(), argmax[ms].end(), ltmp)][ms];
        }
        results[pint(ltmp, r)] = sum;
        if (sum >= res) {
            l = ltmp;
            REP(m, M) while (argmax[m][0] < l) argmax[m].pop_front();
            return true;
        }
    }
    return false;
}


int main()
{
    cin >> N >> M;
    X[0] = 0;
    FOR(i, 1, N) {
        lint tmp;
        cin >> tmp;
        X[i] = X[i - 1] + tmp;
    }
    REP(i, N) REP(j, M) cin >> B[i][j];

    l = 0, r = 0; // closed [l, r]
    argmax.fill(deque<int>{0});
    res = accumulate(B[0].begin(), B[0].end(), 0LL);
    while (r < N - 1) {
        increment_r();
        while (searchl()) {}
    }
    cout << res << endl;
}

Submission Info

Submission Time
Task F - Yakiniku Restaurants
User hitonanode
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1784 Byte
Status WA
Exec Time 2109 ms
Memory 37632 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 1000
Status
AC × 2
AC × 7
WA × 3
TLE × 20
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 1 ms 512 KB
sample_02.txt AC 1 ms 512 KB
subtask_1_dense_max_01.txt TLE 2105 ms 32512 KB
subtask_1_dense_max_02.txt TLE 2105 ms 32512 KB
subtask_1_dense_max_03.txt TLE 2105 ms 32640 KB
subtask_1_dense_max_04.txt TLE 2105 ms 32768 KB
subtask_1_dense_rand_01.txt TLE 2105 ms 35840 KB
subtask_1_dense_rand_02.txt TLE 2105 ms 34432 KB
subtask_1_dense_rand_03.txt AC 25 ms 2944 KB
subtask_1_dense_rand_04.txt AC 252 ms 12160 KB
subtask_1_max_01.txt TLE 2105 ms 37248 KB
subtask_1_max_02.txt TLE 2105 ms 36480 KB
subtask_1_max_03.txt TLE 2105 ms 37632 KB
subtask_1_max_04.txt TLE 2105 ms 35456 KB
subtask_1_min_01.txt WA 1 ms 512 KB
subtask_1_min_02.txt WA 1 ms 512 KB
subtask_1_rand_01.txt AC 386 ms 8064 KB
subtask_1_rand_02.txt AC 84 ms 8320 KB
subtask_1_rand_03.txt AC 413 ms 13312 KB
subtask_1_rand_04.txt WA 214 ms 17664 KB
subtask_1_widemax_01.txt TLE 2105 ms 32512 KB
subtask_1_widemax_02.txt TLE 2105 ms 32512 KB
subtask_1_widemax_03.txt TLE 2109 ms 32640 KB
subtask_1_widemax_04.txt TLE 2105 ms 32512 KB
subtask_1_widemax_05.txt TLE 2105 ms 32512 KB
subtask_1_widemax_06.txt TLE 2105 ms 32384 KB
subtask_1_widemax_07.txt TLE 2105 ms 32384 KB
subtask_1_widemax_08.txt TLE 2105 ms 32768 KB
subtask_1_widemax_09.txt TLE 2105 ms 32256 KB
subtask_1_widemax_10.txt TLE 2105 ms 32384 KB