Submission #3880758
Source Code Expand
#include "bits/stdc++.h"
#define in std::cin
#define out std::cout
#define rep(i,N) for(LL i=0;i<N;++i)
typedef long long int LL;
int main()
{
LL H, W, N, M;
in >> H >> W >> N >> M;
std::vector<std::string>A(N);
rep(i, N) in >> A[i];
std::vector<std::vector<int>>field(std::min(H, N * 2 + 1) + 1, std::vector<int>(std::min(W, M * 2 + 1) + 1));
rep(i, N)
{
rep(j, M)
{
if (A[i][j] == '#')
{
++field[i][j];
--field[field.size() - (N - i)][j];
--field[i][field[i].size() - (M - j)];
++field[field.size() - (N - i)][field[i].size() - (M - j)];
}
}
}
rep(i, field.size() - 1) rep(j, field[i].size()) field[i + 1][j] += field[i][j];
rep(i, field.size()) rep(j, field[i].size() - 1) field[i][j + 1] += field[i][j];
std::map<LL, LL>h, w;
bool h_over = field.size() != H + 1, w_over = field[0].size() != W + 1;
rep(i, field.size() - 1)
{
if (h_over && i == N) h[i] = H - 2 * N;
else h[i] = 1;
}
rep(j, field[0].size() - 1)
{
if (w_over && j == M) w[j] = W - 2 * M;
else w[j] = 1;
}
LL ans = 0;
rep(i, field.size()) rep(j, field[i].size()) if (field[i][j] > 0) ans += h[i] * w[j];
out << ans << std::endl;
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - ハンコ |
| User | babcs2035 |
| Language | C++14 (GCC 5.4.1) |
| Score | 500 |
| Code Size | 1211 Byte |
| Status | AC |
| Exec Time | 298 ms |
| Memory | 17280 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 500 / 500 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, sample-05.txt |
| All | 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, sample-05.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 01.txt | AC | 125 ms | 7424 KiB |
| 02.txt | AC | 23 ms | 1792 KiB |
| 03.txt | AC | 4 ms | 640 KiB |
| 04.txt | AC | 64 ms | 5120 KiB |
| 05.txt | AC | 3 ms | 384 KiB |
| 06.txt | AC | 91 ms | 5504 KiB |
| 07.txt | AC | 5 ms | 640 KiB |
| 08.txt | AC | 4 ms | 640 KiB |
| 09.txt | AC | 2 ms | 384 KiB |
| 10.txt | AC | 66 ms | 4480 KiB |
| 11.txt | AC | 4 ms | 512 KiB |
| 12.txt | AC | 16 ms | 1280 KiB |
| 13.txt | AC | 138 ms | 8704 KiB |
| 14.txt | AC | 2 ms | 384 KiB |
| 15.txt | AC | 2 ms | 512 KiB |
| 16.txt | AC | 26 ms | 2048 KiB |
| 17.txt | AC | 6 ms | 640 KiB |
| 18.txt | AC | 5 ms | 768 KiB |
| 19.txt | AC | 5 ms | 640 KiB |
| 20.txt | AC | 141 ms | 8704 KiB |
| 21.txt | AC | 3 ms | 512 KiB |
| 22.txt | AC | 41 ms | 2944 KiB |
| 23.txt | AC | 298 ms | 17280 KiB |
| sample-01.txt | AC | 1 ms | 256 KiB |
| sample-02.txt | AC | 1 ms | 256 KiB |
| sample-03.txt | AC | 1 ms | 256 KiB |
| sample-04.txt | AC | 1 ms | 256 KiB |
| sample-05.txt | AC | 1 ms | 256 KiB |