Submission #23584

#TimeUsernameProblemLanguageResultExecution timeMemory
23584repeatingBoat (APIO16_boat)C++11
9 / 100
2000 ms524288 KiB
#include <bits/stdc++.h> #define F first #define S second #define P push #define pb push_back #define MEM(dp,i) memset(dp,i,sizeof(dp)) #define W while #define R return #define C continue #define SI size() #define ll long long #define pll pair<ll,ll> #define SF(x) scanf("%I64d",&x) using namespace std; const long long INF = 2e9; long long MOD = 1e9+7; ll n; ll a[555]; ll b[555]; vector<ll> dp[555]; ll DP(ll x,ll last){ if(x==n)R 1; if(last>b[x])R DP(x+1,last); ll p=DP(x+1,last); last=max(last,a[x]); ll &ret=dp[x][last-a[x]]; if(ret!=-1)R ret+p; ret=0; if(last<=b[x]) ret=DP(x,last+1); ret%=MOD; R ret+p; } int main(){ cin>>n; for(int i=0;i<n;i++){ cin>>a[i]>>b[i]; for(int j=a[i];j<=b[i];j++) dp[i].pb(-1); } cout<<(DP(0,1)-1)%MOD; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...