Submission #995024

#TimeUsernameProblemLanguageResultExecution timeMemory
995024thelegendary08Hexagonal Territory (APIO21_hexagon)C++14
9 / 100
1 ms348 KiB
#include "hexagon.h"
#include<bits/stdc++.h>
#define ll long long int
#define f0r(i,n) for(int i = 0;i<n;i++)
using namespace std;
const ll mod = 1e9 + 7;
ll binexp(ll a, ll b){
	ll r = 1;
	f0r(i, 32){
		if(b & (1<<i)){
			r *= a;
			r %= mod;
		}
		a *= a;
		a %= mod;
	}
	return r;
}
int draw_territory(int N, int A, int B, std::vector<int> D, std::vector<int> L) {
    ll n = L[0] + 1;
    ll sz = n * (n + 1)/2;
    sz %= mod;
    n--;
    ll sdist = 0;
    sdist += n * (n+1) % mod;
    sdist *= (2*n+1) % mod;
    sdist %= mod;
    sdist *= binexp(6, mod-2);
    sdist %= mod;
    
    ll b = n * (n+1) % mod;
    b *= binexp(2, mod - 2);
    b %= mod;
    sdist += b;
    sdist %= mod;
	ll ans = (sz * A % mod) + (sdist * B % mod);
	return ans % mod;
}
#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...