Submission #554025

#TimeUsernameProblemLanguageResultExecution timeMemory
554025ala2Boat (APIO16_boat)C++14
9 / 100
2080 ms363256 KiB
#include <bits/stdc++.h> //#define int long long #define F first #define S second #define pb push_back #define B begin() #define E end() using namespace std; int n; int a[1000]; int b[1000]; map<pair<pair<int,int>,int>,int>dp; //map<pair<pair<int,int>,int>,int>go; const int mod=1e9+7; //dp[ { {i,last},pl } ] int T; long long f(int i,int last,int pl) { if(dp[ { {i,last},pl } ]!=0) return dp[ { {i,last},pl } ]%mod; T++; if(i==n+1) return 1; long long g=f(i+1,last,pl); for(int j=a[i];j<=b[i];j++) if(j>a[last]+pl) g+=f(i+1,i,j-a[i]); //cout<<" "<<i<<" "<<last<<" "<<pl<<endl; //go[ { {i,last},pl } ]=1; return dp[ { {i,last},pl } ]=g%mod; } signed main() { T=0; ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); //memset(dp,-1,sizeof dp); cin>>n; for(int i=1;i<=n;i++){ //a[i]=n-i; cin>>a[i]>>b[i]; } cout<<f(1,0,0)-1<<endl; // cout<<T<<endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...