Submission #960121

#TimeUsernameProblemLanguageResultExecution timeMemory
960121kimBoat (APIO16_boat)C++17
9 / 100
7 ms7516 KiB
#include<bits/stdc++.h> using namespace std; using ll=long long; #define eb emplace_back const ll md=1e9+7; vector<int> comp; int a[505],b[505]; ll dp[505][1005],qs[505][1005]; int main(){ ios::sync_with_stdio(false); cin.tie(0); int n; cin>>n; for(int i=1;i<=n;++i){ cin>>a[i]>>b[i]; comp.eb(--a[i]), comp.eb(b[i]); } comp.eb(0); sort(comp.begin(),comp.end()); comp.erase(unique(comp.begin(),comp.end()),comp.end()); int m=comp.size(); dp[0][0]=1; for(int i=0;i<m;++i) qs[0][i]=1; for(int i=1;i<=n;++i){ a[i]=lower_bound(comp.begin(),comp.end(),a[i])-comp.begin(); b[i]=lower_bound(comp.begin(),comp.end(),b[i])-comp.begin(); qs[i][0]=1; for(int j=1;j<m;++j){ if(a[i]<j&&j<=b[i]) dp[i][j]=((qs[i-1][j-1]*(comp[j]-comp[j-1]))%md+md)%md; qs[i][j]=((dp[i][j]+qs[i-1][j]+qs[i][j-1]-qs[i-1][j-1])%md+md)%md; } } cout<<(qs[n][m-1]+md-1)%md; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...