# | 제출 시각UTC-0 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
336638 | super_j6 | Nafta (COI15_nafta) | C++14 | 560 ms | 90732 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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... |