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
AC × 5
AC × 28
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