Submission #1162401

#TimeUsernameProblemLanguageResultExecution timeMemory
1162401brintonHexagonal Territory (APIO21_hexagon)C++20
0 / 100
12 ms16048 KiB
#include "hexagon.h" #include <bits/stdc++.h> using namespace std; #define inf INT_MAX #define MOD (long long)(1e9+7) int draw_territory(int N, int A, int B,vector<int> D, vector<int> L) { int sumL = 200000; vector<vector<int>> vis(2*sumL+1); int x = 0,y = 0; int dx[6] = {0,1,1,0,-1,-1}; int dy[6] = {1,1,0,-1,-1,0}; int preD = -1; for(int i = 0;i < N;i++){ int d = D[i]-1; if(d+preD == 6 && d != 3){ vis[x+sumL].push_back(y); } preD = d; for(int t = 0;t < L[i];t++){ x += dx[d]; y += dy[d]; vis[x+sumL].push_back(y); } } if(D[0] + D[N-1] == 6 && D[0] != 3){ vis[0+sumL].push_back(0); } int ans = 0; for(auto v:vis){ if(v.empty())continue; sort(v.begin(),v.end()); int cur = 0; for(int i = 1;i < v.size();i+=2){ ans += v[i]-v[i-1]+1; cur += v[i]-v[i-1]+1; } if(v.size() % 2 == 1){ ans++; cur++; } // cout << cur << endl; } return (long long)ans*A%MOD; } #undef inf
#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...