求调
查看原帖
求调
552404
Joe2011楼主2024/10/20 22:47

这份代码获得了2pts的好成绩!

record

#include<bits/stdc++.h>
using namespace std;
const int N=2010;
const char spc='z';
int n,m,r,c;
char ans[N][N];
void print(bool flag){
	for (int i=1;i<=n;i++,cout<<'\n') for (int j=1;j<=m;j++) cout<<(flag?ans[j][i]:ans[i][j]);
}
int main(){
	cin>>n>>m>>r>>c;
	if (r==n&&c==m)
		for (int i=1;i<=n;i++,putchar('\n')) for (int j=1;j<=m;j++) putchar(spc);
	else if (r==n||c==m){
		int flag=0;
		if (c==m)
			swap(n,m),
			swap(r,c),
			flag=1;
		if (!(m&1)&&(c&1)){cout<<"IMPOSSIBLE";return 0;}
		for (int i=1;i<n;i++) for (int j=1;j<=m;j++)
			ans[i][j]=spc;
		char x='y';
		int i=1;
		while (c>1){
			ans[n][i]=spc;
			ans[n][m-i+1]=spc;
			i++;
			c-=2;
		}
		if (c) ans[n][(m>>1)+1]=spc;
		for (i=1;i<=m;i++) if (ans[n][i]!=spc)
			ans[n][i]=x;
		if (flag) swap(n,m);
		print(1);
	}else{
		for (int i=1;i<=r;i++) for (int j=1;j<=m;j++)
			ans[i][j]=spc;
		for (int i=1;i<=n;i++) for (int j=1;j<=c;j++)
			ans[i][j]=spc;
		for (int i=r+1;i<=n;i++) for (int j=c+1;j<=m;j++)
			ans[i][j]=((i+j)%25)+'a';
		print(0);
	}
	return 0;
}
2024/10/20 22:47
加载中...