Submission #1119001

#TimeUsernameProblemLanguageResultExecution timeMemory
1119001knot222Rice Hub (IOI11_ricehub)C++14
0 / 100
302 ms262144 KiB
#include "ricehub.h"
#include<bits/stdc++.h>
#define ll long long int
using namespace std;

ll dpl[5005][5005];
ll dpr[5005][5005];
int besthub(int R, int L, int X[], long long B) {
    for (int i=0;i<R;i++) {
        for (int j=0;j<R;j++) {
            dpl[i][j] = LLONG_MAX/3;
            dpr[i][j] = LLONG_MAX/3;
            if (j==0) {
                dpl[i][0] = 0;
                dpr[i][0] = 0;
            }
        }
    }
    for (int i=1;i<R;i++) {
        for (int j=1;j<R;j++) {
            dpl[i][j] = dpl[i-1][j-1]+(X[i]-X[i-1])*(j-1);
        }
    }
    for (int i=R-2;i>=0;i--) {
        for (int j=0;j<R;j++) {
            dpr[i][j] = dpr[i+1][j-1]+(X[i]-X[i+1])*(j-1);
        }
    }
    int best = 0;
    for (int i=0;i<R;i++) {
        int l = R-1;
        int r = 0;
        while (l>=0&&r<R) {
            if (dpl[i][l]+dpr[i][r]<=B) {
                best = max(best, l+r);
            } 
            while (dpl[i][l]+dpr[i][r]<=B && r<R-1) {
                r++;
            }
            l--;
        }
    }
    return best;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...