# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
336638 | super_j6 | Nafta (COI15_nafta) | C++14 | 560 ms | 90732 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string.h>
using namespace std;
#define endl '\n'
#define ll long long
#define pi pair<int, int>
#define f first
#define s second
const int mxn = 2002, mxk = mxn * mxn, w = 2;
const int dx[w] = {1, 0};
const int dy[w] = {0, 1};
int n, m, k;
int s[mxk], l[mxk], r[mxk], par[mxk], rnk[mxk];
int a[mxn][mxn], f[mxn][mxn], dp[mxn], p[mxn];
int fnd(int x){
return x == par[x] ? x : par[x] = fnd(par[x]);
}
int sol(int x, int y, int l, int r){
if(l > r) return 0;
int mid = (l + r) / 2, z = x;
for(int i = x; i <= min(y, mid - 1); i++){
int dd = p[i] + f[mid][mid] - f[i][mid];
if(dd > dp[mid]) dp[mid] = dd, z = i;
}
return max({dp[mid], sol(x, z, l, mid - 1), sol(z, y, mid + 1, r)});
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |