只有最后一个测试点过了,求佬救救
查看原帖
只有最后一个测试点过了,求佬救救
1125710
Keria04楼主2023/10/21 11:56
#include<iostream>
#include<string>
#include<iomanip>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<ctime>
using namespace std;
int arr1[600][600];
int arr2[600][600];
int num=1;
void op(int x,int y,int r,int z)
{
    for(int i=x-r;i<=x+r;i++)
    {
        for(int j=y-r;j<=y+r;j++)
        {
            if(z==1){arr2[2*y-j][i]=arr1[i][j];}
            if(z==0){arr2[j][2*x-i]=arr1[i][j];}
            
        }
    }
    for(int i=x-r;i<=x+r;i++)
    {
        for(int j=y-r;j<=y+r;j++)
        {
            arr1[i][j]=arr2[i][j];
        }
    }
}
int main()
{
    int n,m,x,y,r,z;
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
            arr1[i][j]=num++;
    }
    while(m--)
    {
        cin>>x>>y>>r>>z;
        op(x,y,r,z);
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {cout<<arr1[i][j]<<" ";}
        cout<<endl;
    }
    
}

行和列也没有弄反呀,一直找也找不到问题。

2023/10/21 11:56
加载中...