Source Code
#include <bits/stdc++.h>

using namespace std;

#define modulo ll (1e9 + 7)
#define neig(a, u, e, v) for(int v, e = (a).head[u] ; ~e and (v = (a).to[e], 1) ; e = (a).nxt[e])

typedef long long ll;

const int N = 2e5 + 9, M = 1e6 + 9, OO = 0x3f3f3f3f;
const ll llOO = 0x3f3f3f3f3f3f3f3f;

ll sum(ll l, ll r){
    l--;
    ll total = (r * (r + 1) / 2)%modulo;
    total -= (l * (l + 1) / 2)%modulo;
    total%=modulo;
    return (total+modulo)%modulo;
}


int main() {
    cin.tie(0);
    cin.sync_with_stdio(0);

    ll l, r, x, y, k;   cin >> l >> r >> x >> y >> k;  //rest after k problems about y minutes
     // x minute for 1
     ll ans = (sum(l,r) * x%modulo) %modulo;



    l-- , r--;

     ll rr= (r/k + 1)*k   - 1;
     ll L = (l/k )*k;

     ll ans1 =  sum(L/k , rr/k) * ( k%modulo);
     ans1 %= modulo;



     ll ans2 = (l-L)%modulo  *  (L/k)%modulo;
     ans2 %=modulo;

     ll ans3 = (rr-r )%modulo * (rr/k)%modulo;
     ans3%=modulo;

     ans1-=ans2;
     ans1-=ans3;
     ans1%=modulo;
     ans1 = (ans1 +modulo)%modulo;

     ans1 *= y%modulo;
     ans1 %=modulo ;

     cout<<(ans1 + ans)%modulo;
}
Copy
Practice Practice MuhammadHassan
GNU G++17
0 ms
772 KB
Accepted