Submission #203906

#TimeUsernameProblemLanguageResultExecution timeMemory
203906SegtreeBoat (APIO16_boat)C++14
31 / 100
1443 ms524292 KiB
#include<iostream> #include<algorithm> #include<vector> using namespace std; typedef long long ll; #define chmin(a,b) a=min(a,b) #define chmax(a,b) a=max(a,b) #define rep(i,n) for(int i=0;i<n;i++) #define mod 1000000007 #define mad(a,b) a=(a+b)%mod #define N 510 #define X 1000010 vector<ll> dp[N]; ll a[N],b[N]; int main(){ ll n; cin>>n; a[0]=b[0]=0; dp[0].push_back(1); for(int i=1;i<=n;i++){ cin>>a[i]>>b[i]; for(int j=a[i];j<=b[i];j++)dp[i].push_back(0); for(int j=0;j<i;j++){ for(int k=a[j];k<=b[j];k++){ if(k<a[i])mad(dp[i][0],dp[j][k-a[j]]); else if(k<b[i])mad(dp[i][k+1-a[i]],dp[j][k-a[j]]); } } for(int j=a[i]+1;j<=b[i];j++)mad(dp[i][j-a[i]],dp[i][j-1-a[i]]); } ll ans=0; for(int i=1;i<=n;i++){ for(int j=a[i];j<=b[i];j++){ //cout<<i<<" "<<j<<" "<<dp[i][j-a[i]]<<endl; mad(ans,dp[i][j-a[i]]); } } cout<<ans<<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...