제출 #1237344

#제출 시각아이디문제언어결과실행 시간메모리
1237344zadniprovskaTrains (BOI24_trains)C++20
16 / 100
10 ms1096 KiB
#include <bits/stdc++.h>

using namespace std;


#define ll long long

const ll DIM = 1e5 + 7;
const ll mod = 1e9 + 7;

ll diff[DIM];

int main(){
    ios::sync_with_stdio(false);cin.tie(nullptr); cout.tie(nullptr);
    

    ll n;
    cin >> n;


    diff[2] = -1;
    ll dp = 1, answer = 0;
    for (int i=1; i<=n; i++) {
        ll d, x;
        cin >> d >> x;

        // i+d ... i + x*d

        diff[i+d]+=dp;
        diff[i+d] %= mod;
        diff[min(n, i+x*d) + 1]-=dp;
        diff[min(n, i+x*d) + 1] %= mod;
        if (diff[min(n, i+x*d) + 1] < 0) diff[min(n, i+x*d) + 1] += mod;

        answer += dp;
        answer %= mod;

        dp = dp + diff[i+1];
        dp %= mod;
    }

    cout << answer << 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...
#Verdict Execution timeMemoryGrader output
Fetching results...