Submission #415854

#TimeUsernameProblemLanguageResultExecution timeMemory
415854grtBoat (APIO16_boat)C++17
9 / 100
2105 ms215160 KiB
#include <bits/stdc++.h> #define ST first #define ND second #define PB push_back using namespace std; using ll = long long; using pi = pair<int,int>; using vi = vector<int>; const int nax = 500 + 10, mod = 1e9 + 7; int n, mx; map<int, int>dp, dp2; int a[nax], b[nax]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> n; for(int i = 1; i <= n; ++i) { cin >> a[i] >> b[i]; } dp[0] = 1; for(int i = 1; i <= n; ++i) { int sum = 0; for(auto x : dp) sum = (sum + x.ND) % mod; dp2 = dp; auto it = dp.end(); for(int j = b[i]; j >= a[i]; --j) { while(it != dp.begin() && (*prev(it)).ST >= j) { it = prev(it); sum = (sum - (*it).ND) % mod; } dp2[j] = (dp2[j] + sum) % mod; } dp = dp2; } int ans = 0; for(auto x : dp) ans = (ans + x.ND) % mod; ans--; if(ans < 0) ans += mod; cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...