Submission #1166139

#TimeUsernameProblemLanguageResultExecution timeMemory
1166139dnnndaEscape Route 2 (JOI24_escape2)C++20
23 / 100
62 ms6504 KiB
#include<bits/stdc++.h>
using namespace std;
#define S second
#define F first
#define ll long long
//#define int long long
//#pragma GCC optimize("Ofast, unroll-loop")
//#pragma GCC target("avx,avx2")
#pragma GCC optimize("O3")
#define init(arr,val) memset(arr,val,sizeof arr)
const int inf=0x3f3f3f3f;
const ll inff=0x3f3f3f3f3f3f3f3f;
const int X=1000000007;
//const int X=998244353;

int a[100005], b[100005];
ll dp[100005];

int main(){
    ios::sync_with_stdio(false), cin.tie(nullptr);
    int n, t; cin >> n >> t;
    for(int i=1 ; i<=n-1 ; i++){
        int m; cin >> m;
        cin >> a[i] >> b[i];
    }
    for(int i=1 ; i<n ; i++){
        if(b[i-1]<=a[i]) dp[i+1]=dp[i]+(a[i]-b[i-1])+(b[i]-a[i]);
        else dp[i+1]=dp[i]+(a[i]-b[i-1]+t)+(b[i]-a[i]);
        //cout << "dp[" << i+1 << "]=" << dp[i+1] << '\n';
    }
    int q; cin >> q;
    while(q--){
        int l, r; cin >> l >> r;
        cout << dp[r]-dp[l]-(t+a[l]-b[l-1])%t << '\n';
    }



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