This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef vector<int> vi;
typedef pair<int, int> ii;
typedef vector<ii> vii;
typedef vector<vi> vvi;
typedef vector<vii> vvii;
#define INF INT_MAX
#define MOD 1000000007
#define all(x) x.begin(), x.end()
vii A;
vector<map<int, ll>> dp;
void solve(int x, int C){
auto &v = dp[x][C];
v += dp[x][C-1]+1; v %= MOD;
for(int i = 0; i < x; i++){
auto it = dp[i].lower_bound(C);
if(it == dp[i].begin()) continue;
v += prev(it)->second;
v %= MOD;
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
int N; cin >> N;
A.resize(N);
for(auto &[l, r] : A)
cin >> l >> r;
dp.resize(N);
ll ans = 0;
for(int x = 0; x < N; x++){
for(auto [l, r] = A[x]; l <= r; l++)
solve(x, l);
ans += dp[x][A[x].second]; ans %= MOD;
}
cout << ans << endl;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |