[构造] AtCoder ARC 093D - Grid Components

简单构造。

画隔开的 \(3\times 3\) 的正方形, 最多能画 \(625\) 个 ,然后可以在小正方形中间挖...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<cstdio>
#include<algorithm>
using namespace std;
int a[105][105],n,A,B,flg;
char c[2]={'.','#'};
int main(){
freopen("arc093_b.in","r",stdin);
freopen("arc093_b.out","w",stdout);
scanf("%d%d",&A,&B);
if(A>B) swap(A,B), flg=1;
A--;
for(int i=1;i<=100&&B;i+=4)
for(int j=1;j<=100&&B;j+=4){
B--; for(int t=0;t<=2;t++) a[i][j+t]=a[i+1][j+t]=a[i+2][j+t]=1;
if(A) a[i+1][j+1]=0, A--;
}
printf("100 100\n");
for(int i=1;i<=100;i++){
for(int j=1;j<=100;j++) putchar(c[a[i][j]^flg]);
putchar('\n');
}
return 0;
}