제출 #645817

#제출 시각아이디문제언어결과실행 시간메모리
645817fatemetmhrSpiral (BOI16_spiral)C++17
0 / 100
1 ms324 KiB
// ~ Be Name Khoda ~ // #include<bits/stdc++.h> using namespace std; typedef long long ll; #define pb push_back #define mp make_pair #define all(x) x.begin(), x.end() #define fi first #define se second const int maxn = 1e6 + 10; const int maxn5 = 5e5 + 10; const int maxnt = 1.2e6 + 10; const int maxn3 = 1e3 + 10; const int mod = 1e9 + 7; const ll inf = 1e18; ll tagh2, tagh6; inline ll pw(ll a, ll b){ ll ret = 1; a %= mod; for(; b; b >>= 1, a = a * a % mod) if(b&1) ret = ret * a % mod; return ret; } inline ll sigmai(ll n){ n %= mod; return (n * (n + 1) % mod) * tagh2 % mod; } inline ll sigmai2(ll n){ n %= mod; return ((n * (n + 1) % mod) * ((2 * n + 1) % mod) % mod) * tagh6 % mod; } inline ll sigmai3(ll n){ n %= mod; ll ans = (n * (n + 1) % mod) * tagh2 % mod; return ans * ans % mod; } inline ll moraba(ll n){ return (2 * mod + (8 * sigmai3(n) % mod) - (8 * sigmai2(n) % mod) + (4 * sigmai(n) % mod) - (n % mod)) % mod; } inline ll sumio1(ll n){ return (mod + (4 * sigmai2(n) % mod) - (3 * sigmai(n) % mod) + (2 * n % mod)) % mod; } int main() { ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); tagh2 = pw(2, mod - 2); tagh6 = pw(6, mod - 2); ll n; int tt; cin >> n >> tt; while(tt--){ ll x1, y1, x2, y2; cin >> x1 >> y1 >> x2 >> y2; ll ans = moraba(y2); if(y2 < x2){ ll A = sumio1(x2) - sumio1(y2); ll d = x2 - y2; d %= mod; ans += (y2 * ((2 * A + ((y2 - 1) * d % mod)) % mod)) * tagh2 % mod; ans %= mod; } if(y2 > x2){ ll A = sumio1(y2) - sumio1(x2); ll d = y2 - x2; d %= mod; ans += mod - ((y2 * ((2 * A + ((y2 - 1) * d % mod)) % mod)) * tagh2 % mod); ans %= mod; } cout << ans << '\n'; } }
#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...