Submission #1336237

#TimeUsernameProblemLanguageResultExecution timeMemory
1336237vehamHexagonal Territory (APIO21_hexagon)C++20
0 / 100
0 ms344 KiB
#include "hexagon.h"
#include <bits/stdc++.h>
using namespace std;
typedef vector<int> vi;
typedef long long ll;
typedef vector<ll> vl;
ll const MOD = 1e9 + 7;


ll calc_area(int N, vi &D, vi &L) {
  ll area = 6LL * N - 3LL * (N-2), y = 0;
  vl C1 = {-1,0,6,6,0,-6,-6},C2 = {-1,0,3,0,0,-3,0}, C3 = {-1,-1,0,0,1,0,0}, C4 = {-1,1,1,0,-1,-1,0};
  area %= MOD;
  for(int i = 0;i < N;i++){
    area += C1[D[i]] * L[i] * y + C2[D[i]] * L[i] * L[i];
    area += ll(L[i] - 1) * 3;
    area %= MOD;
    area += MOD;
    area %= MOD;
    y += C4[D[i]] * L[i];
    y %= MOD;
    y += MOD;
    y %= MOD;
  }
  return area/6;
}

int draw_territory(int N, int A, int B, vi D, vi L) {
  ll Ar = calc_area(N,D,L);
  return (Ar * A) % 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...