这份代码获得了2pts的好成绩!
#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;
}