# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
953173 | Deepesson | Skyscraper (JOI16_skyscraper) | C++17 | 63 ms | 77652 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 <bits/stdc++.h>
#define MAX 105
int tab[MAX][MAX][1005][3];
bool existe[MAX][MAX][1005][3];
using ll = long long;
ll MOD = 1e9+7;
std::vector<int> alturas;
ll N,L;
ll dp(ll cur,ll conjs,ll soma,ll bordas){
if(soma>L)return 0;
if(cur==N){
if(conjs==1&&!bordas){
return 1;
}
return 0;
}
if(existe[cur][conjs][soma][bordas])return tab[cur][conjs][soma][bordas];
existe[cur][conjs][soma][bordas]=1;
ll num_lados = 2*conjs-(2-bordas);
ll custo=0;
if(cur){
custo=alturas[cur]-alturas[cur-1];
}
ll custo_adicional = custo*num_lados;
ll cur1 = 0,cur2=0,cur3=0;
///Une dois caras
if(conjs>1){
int remove=0;
if(bordas==1){
remove=conjs-1;
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |