이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "hexagon.h"
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const ll MOD = 1e9 + 7;
ll A, B;
ll mop(ll a, ll p) {
ll ans = 1;
for (;p != 0ll;p >>= 1ll, a = a * a % MOD) {
if (p & 1ll) ans = ans * a % MOD;
}
return ans;
}
int draw_territory(int N, int AA, int BB, vector<int> D, vector<int> L) {
// N = 3
A = AA, B = BB;
ll l = L[0];
// triangle with l + 1 level
ll cnt = (l + 1) * (l + 2) / 2;
cnt %= MOD;
ll res = cnt * A % MOD;
// sum = 1 * 1 - 1 + 2 * 2 - 2 + 3 * 3 - 3 + ... + (l+1) * (l+1) - (l+1)
// sum = (l+1)(l+2)(2*l+3)/6
ll sum = (l + 1) * (l + 2) % MOD * (2 * l + 3) % MOD * mop(6, MOD - 2) % MOD;
sum = (sum - cnt + MOD) % MOD;
res = (res + sum * B % MOD) % MOD;
return res;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |