Submission #361381

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
3613812021-01-29 16:26:03jumpOverTheWallSkyscraper (JOI16_skyscraper)C++14
0 / 100
94 ms173832 KiB
#include <bits/stdc++.h>
using namespace std;
const int N = 105;
const int L = 1005;
const int MOD = 1000000007;
int dp[N][L][N][2][2], a[N], n, lim;
int add(int x, int y) {
if ((x += y) >= MOD) x -= MOD;
return x;
}
int mul(int x, int y) {
return (long long)x * y % MOD;
}
int calc(int i, int cSum, int cMid, int cLef, int cRig) {
int &res = dp[i][cSum][cMid][cLef][cRig];
if (res >= 0) return res; res = 0;
/// assume missing position is filled with a[i + 1]
int nSum = cSum + (cMid * 2 + cLef + cRig) * (a[i + 1] - a[i]);
if (nSum > lim || cMid < 0) return res = 0;
/// concate left segment and right segment
if (i == n - 1) return res = cMid == 0 && cLef && cRig;
/// append to left segment
res = add(res, calc(i + 1, nSum, cMid, 1, cRig));
/// append to right segment
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

skyscraper.cpp: In function 'int calc(int, int, int, int, int)':
skyscraper.cpp:22:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   22 |     if (res >= 0) return res; res = 0;
      |     ^~
skyscraper.cpp:22:31: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
   22 |     if (res >= 0) return res; res = 0;
      |                               ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...