제출 #405809

#제출 시각아이디문제언어결과실행 시간메모리
405809gevacrtBoat (APIO16_boat)C++17
9 / 100
2088 ms524292 KiB
#include<bits/stdc++.h>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp> 
using namespace __gnu_pbds; 

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<gp_hash_table<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++){
        v += dp[i][min(C-1, A[i].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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...