可怜的蒟蒻求调“调了两个多小时还是错的代码”
查看原帖
可怜的蒟蒻求调“调了两个多小时还是错的代码”
516867
SZnP楼主2022/6/28 08:41
#include <bits/stdc++.h>
using namespace std;
int a[505][505],t[505][505],i,j,k,c,v,k1,k2,k3,k4,temp=1;
int ssz(int x,int y,int r)
{
	for(i=x-r;i<=x+r;i++){
		for(j=y-r;j<=y+r;j++)
		{
			t[i][j]=a[i][j];
		}
	}
	for(i=x-r;i<=x+r;i++){
		for(j=y-r;j<=y+r;j++)
		{
			a[j][x+r-i]=t[i][j];
		}
	}
}
int nsz(int q,int w,int e)
{ 
	for(i=q-e;i<=q+e;i++){
		for(j=w-e;j<=w+e;j++)
		{
			t[i][j]=a[i][j];
		}
	}
	for(i=q-e;i<=q+e;i++)
	{		
		for(j=w-e;j<=w+e;j++)
		{
			a[q+w-j][i]=t[i][j];
		}
	}
}
void emptyt()
{
	for(i=0;i<505;i++)
	for(j=0;j<505;j++)
	t[i][j]=0;
}
void out()
{
	for(i=0;i<c;i++)
	{
		for(j=0;j<c;j++)
		cout<<a[i][j]<<" ";
		cout<<endl;
	}
}
int main()
{
	scanf("%d%d",&c,&v);
	for(i=0;i<c;i++)
	for(j=0;j<c;j++)
	{
		a[i][j]=temp;
		temp++;
	}
	for(int l=0;l<v;l++)
	{
		emptyt();
		scanf("%d%d%d%d",&k1,&k2,&k3,&k4);
		if(k4==0)ssz(k1-1,k2-1,k3);
		if(k4==1)nsz(k1-1,k2-1,k3);
		cout<<endl;
		out();
		cout<<endl;
	}
	return 0;
}

运行结果:

运行结果

正解:

正解

2022/6/28 08:41
加载中...