Submission #528166

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
5281662022-02-19 14:45:15hoainiemSkyscraper (JOI16_skyscraper)C++14
100 / 100
58 ms16048 KiB
#include <bits/stdc++.h>
const int mod = 1e9+7;
double begintime, endtime;
using namespace std;
inline void CALC_TIME()
{
endtime = clock();
cout<<"\nexecution time : "<<(endtime-begintime+1)/1000<<" s";
}
void add(int &x, int y)
{
x += y;
if(x >= mod)x -= mod;
}
int n, l, nect, ans = 0, tmp, a[108], f[108][108][1008][3];
int dq(int i, int j, int k, int x)
{
if(k < 0 || k > l)return 0;
if(f[i][j][k][x] != -1)return f[i][j][k][x];
if(i == n)
{
if(j == 1 && k == l && x == 2)return f[i][j][k][x] = 1;
return f[i][j][k][x] = 0;
}
int res = 0, tmp = a[i+2]-a[i+1];
add(res, 1LL*dq(i+1, j+1, k+tmp*(j*2+2-x), x)*(j+1-x)%mod);
if(x < 2)
add(res, 1LL*dq(i+1, j+1, k+tmp*(j*2+1-x), x+1)*(2-x)%mod);
add(res, 1LL*dq(i+1, j, k+tmp*(j*2-x), x)*(j*2-x)%mod);
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...