Submission #1197359

#TimeUsernameProblemLanguageResultExecution timeMemory
1197359hengliaoHexagonal Territory (APIO21_hexagon)C++20
9 / 100
0 ms328 KiB
#include "hexagon.h"
#include<bits/stdc++.h>
using namespace std;

#define F first
#define S second
#define pb push_back
#define vll vector<ll>
#define pll pair<ll, ll>

typedef long long ll;

namespace{
  const ll mod=1e9+7;

  ll pw(ll a, ll b){
    ll re=1;
    for(ll i=0;i<63;i++){
      if(b&(1LL<<i)){
        re*=a;
        re%=mod;
      }
      a*=a;
      a%=mod;
    }
    return re;
  }

  ll inv(ll tar){
    return pw(tar, mod-2);
  }
}

int draw_territory(int N, int A, int B,
                   std::vector<int> D, std::vector<int> L) {
  ll f=((ll) L[0]+1)*((ll) L[0]+2)/2;
  f%=mod;
  ll s=((ll) L[0]+1)*((ll) L[0])/2;
  s%=mod;
  s+=(((((ll) L[0]*((ll) L[0]+1))%mod)*(ll) (2*L[0]+1))%mod)*inv(6);
  s%=mod;
  ll ans=f*A;
  ans%=mod;
  ans+=s*B;
  ans%=mod;
  return (int) ans;
}
#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...