제출 #1063800

#제출 시각아이디문제언어결과실행 시간메모리
1063800thinknoexit육각형 영역 (APIO21_hexagon)C++17
9 / 100
1 ms600 KiB
#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 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...