# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
779631 | Ahmed57 | Abduction 2 (JOI17_abduction2) | C++17 | 3048 ms | 128436 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.
#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math,O3")
#include <bits/stdc++.h>
using namespace std;
//dir = 0 left
//dir = 1 right
//dir = 2 up
//dir = 3 down
int dp[2001][2001][4];
int n,m,q;
int arr1[2001],arr2[10001];
int solve(int x,int y,int dir){
if(x<0||x>=n||y<0||y>=m)return -1;
if(dp[x][y][dir]!=-1)return dp[x][y][dir];
if(dir==0){
if(arr2[y]>arr1[x]){
int c1 = 0;
c1 = max(c1,solve(x-1,y,2)+1);
c1 = max(c1,solve(x+1,y,3)+1);
return dp[x][y][dir] = c1;
}else{
return dp[x][y][dir] = solve(x,y-1,dir)+1;
}
}if(dir==1){
if(arr2[y]>arr1[x]){
int c1 = 0;
c1 = max(c1,solve(x-1,y,2)+1);
c1 = max(c1,solve(x+1,y,3)+1);
return dp[x][y][dir] = c1;
}else{
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |