Submission #1356775

#TimeUsernameProblemLanguageResultExecution timeMemory
1356775MunkhErdeneHexagonal Territory (APIO21_hexagon)C++17
9 / 100
1 ms344 KiB
#include "hexagon.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define pb push_back
#define FOR(i, a, b) for(ll i = (a); i < (b); ++i)
#define FORD(i, a, b) for(ll i = (a); i >= (b); --i)
#define ok cout << "ok\n"

const ll mod = 1e9 + 7;
ll modpow(ll a, ll b, ll m = mod) {
    a %= m;
    ll c = 1;
    while(b) {
        if(b & 1) c = c * a % m;
        a = a * a % m;
        b >>= 1;
    }
    return c;
}

ll modinv(ll a, ll m = mod) {
    return modpow(a, m - 2, m);
}

int draw_territory(int N, int A, int B, std::vector<int> D, std::vector<int> L) {
    ll n = N;
    ll a = A;
    ll b = B;
    vector<ll> d(n), l(n);
    FOR(i, 0, n) {
        d[i] = D[i];
        l[i] = L[i];
    }
    ll ans = 0;
    ll m = l[0] + 1;
    ans = (ans + m * (m + 1) % mod * modinv(2) % mod * a % mod) % mod;
    ans = (ans + (m * (m + 1) % mod * (2 * m + 1) % mod * modinv(6) % mod - m * (m + 1) % mod * modinv(2) % mod + mod) * b % mod) % mod;
    return ans;
}


#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...