Submission #553924

#TimeUsernameProblemLanguageResultExecution timeMemory
553924ala2Boat (APIO16_boat)C++14
9 / 100
2076 ms524288 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[1001000]; int b[1000100]; 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 f(int i,int last,int pl) { if(go[ { {i,last},pl } ]!=0) return dp[ { {i,last},pl } ]%mod; if(i==n+1) return 1; int 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() { 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; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...