Submission #4907150
Source Code Expand
#include<iostream> #include<algorithm> using namespace std; long H,W; int N,M; string s[1000]; int sum[1001][1001]; int a[2002][2002]; main() { cin>>H>>W>>N>>M; for(int i=0;i<N;i++) { cin>>s[i]; for(int j=0;j<M;j++)sum[i+1][j+1]=s[i][j]=='#'; } for(int i=0;i<=N;i++) { for(int j=0;j<=M;j++) { sum[i][j]+=(j>0?sum[i][j-1]:0)+(i>0?sum[i-1][j]:0)-(i>0&&j>0?sum[i-1][j-1]:0); } } if(sum[N][M]==0) { cout<<0<<endl; return 0; } if(H<2*N&&W<2*M) { long cnt=0; for(int i=0;i<H;i++) { for(int j=0;j<W;j++) { int x1=max(i-(H-N),0L),y1=max(j-(W-M),0L),x2=min(i+1,N),y2=min(j+1,M); cnt+=a[i][j]=sum[x2][y2]-sum[x1][y2]-sum[x2][y1]+sum[x1][y1]>0; } } cout<<cnt<<endl; } else { long cnt=2*N*2*M; for(int i=0;i<2*N;i++) { for(int j=0;j<2*M;j++) { int x1=max(i-N,0),y1=max(j-M,0),x2=min(i+1,N),y2=min(j+1,M); cnt-=a[i][j]=sum[x2][y2]-sum[x1][y2]-sum[x2][y1]+sum[x1][y1]>0; } } int id=0; while(sum[id+1][M]==0)id++; cnt+=(W-2*M)*id; id=N; while(sum[N][M]-sum[id-1][M]==0)id--; cnt+=(W-2*M)*(N-id); id=0; while(sum[N][id+1]==0)id++; cnt+=(H-2*N)*id; id=M; while(sum[N][M]-sum[N][id-1]==0)id--; cnt+=(H-2*N)*(M-id); cout<<H*W-cnt<<endl; } }
Submission Info
Submission Time | |
---|---|
Task | D - ハンコ |
User | kotatsugame |
Language | C++14 (GCC 5.4.1) |
Score | 500 |
Code Size | 1298 Byte |
Status | AC |
Exec Time | 53 ms |
Memory | 20864 KB |
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 | 24 ms | 12928 KB |
02.txt | AC | 8 ms | 12032 KB |
03.txt | AC | 5 ms | 9728 KB |
04.txt | AC | 38 ms | 14464 KB |
05.txt | AC | 3 ms | 7552 KB |
06.txt | AC | 37 ms | 14208 KB |
07.txt | AC | 3 ms | 3200 KB |
08.txt | AC | 6 ms | 18432 KB |
09.txt | AC | 2 ms | 2304 KB |
10.txt | AC | 16 ms | 16896 KB |
11.txt | AC | 3 ms | 5504 KB |
12.txt | AC | 6 ms | 6272 KB |
13.txt | AC | 28 ms | 17664 KB |
14.txt | AC | 2 ms | 2304 KB |
15.txt | AC | 5 ms | 18304 KB |
16.txt | AC | 15 ms | 8576 KB |
17.txt | AC | 5 ms | 7680 KB |
18.txt | AC | 6 ms | 11776 KB |
19.txt | AC | 4 ms | 3072 KB |
20.txt | AC | 29 ms | 15232 KB |
21.txt | AC | 3 ms | 2688 KB |
22.txt | AC | 10 ms | 8704 KB |
23.txt | AC | 53 ms | 20864 KB |
sample-01.txt | AC | 2 ms | 2304 KB |
sample-02.txt | AC | 2 ms | 2304 KB |
sample-03.txt | AC | 2 ms | 2304 KB |
sample-04.txt | AC | 2 ms | 2304 KB |
sample-05.txt | AC | 2 ms | 2304 KB |