# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|
19771 | | exqt | 창문 (kriii4_C) | C++98 | | 0 ms | 1720 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <algorithm>
#include <vector>
#include <sstream>
#include <fstream>
#include <iterator>
using namespace std;
#define in cin
#define out cout
#define ll long long int
#define pii pair<ll, ll>
#define pdd pair<double, double>
#define X first
#define Y second
ll DV = 1000000007LL;
ll pow(ll a, ll b)
{
ll t = a;
ll res = 1LL;
while(b)
{
if(b%2) res = (res * t) % DV;
t = t % DV;
t = (t*t) % DV;
b = b >> 1;
}
return res;
}
ll inv(ll a)
{
return pow(a, DV-2)%DV;
}
ll mul(ll a, ll b)
{
return ((a%DV)*(b%DV))%DV;
}
ll sub(ll a, ll b)
{
a += 2LL*DV;
b += 2LL*DV;
return ((a%DV)-(b%DV)+10LL*DV)%DV;
}
ll add(ll a, ll b)
{
return ((a%DV)+(b%DV))%DV;
}
int main()
{
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
ll w, h; in >> w >> h;
w %= DV; h %= DV;
ll wS = mul( mul(w, w+1LL), inv(2LL) );
ll hS = mul( mul(h, h+1LL), inv(2LL) );
ll wS2 = mul( mul(w, w+1LL), mul(mul(2LL,w)+1LL, inv(6LL)) );
ll hS2 = mul( mul(h, h+1LL), mul(mul(2LL,h)+1LL, inv(6LL)) );
ll res = 0;
res = add(res, mul( mul(wS, hS), mul(w,h) ));
res = sub(res, mul( mul(wS, hS2), mul(w,1LL) ));
res = add(res, mul( mul(wS, hS), mul(w,1LL) ));
res = sub(res, mul( mul(wS2, hS), mul(1LL,h) ));
res = add(res, mul( mul(wS2, hS2), mul(1LL,1LL) ));
res = sub(res, mul( mul(wS2, hS), mul(1LL,1LL) ));
res = add(res, mul( mul(wS, hS), mul(1LL,h) ));
res = sub(res, mul( mul(wS, hS2), mul(1LL,1LL) ));
res = add(res, mul( mul(wS, hS), mul(1LL,1LL) ));
res = mul(res, mul(inv(hS), inv(wS)));
res = (res*9LL)%DV;
out << res;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |