第二个测试点一直过不了
查看原帖
第二个测试点一直过不了
677715
xyaaaa楼主2022/3/4 09:34

第二个测试点一直过不了 咋回事啊
错误:Wrong Answer.wrong answer Too long on line 1

麻烦大佬们帮我看看哪里有问题。

这是代码:

#include <iostream>
#include <cstring>
using namespace std;


int main()
{
    long n,m,k,acount=0;
    cin >> n >> m >> k;
    int fire[m][2],light[k][2],a[n][n];

    memset(a,0,sizeof(a));

    for(int i=0;i<m;i++)
    {
        for(int j=0;j<2;j++)
        {
           cin >> fire[i][j];
           a[fire[i][j]-1][fire[i][j]-1]=1;

           a[fire[i][j]-2][fire[i][j]-1]=1;
           a[fire[i][j]-3][fire[i][j]-1]=1;
           a[fire[i][j]+1][fire[i][j]-1]=1;
           a[fire[i][j]][fire[i][j]-1]=1;

           a[fire[i][j]-1][fire[i][j]+1]=1;
           a[fire[i][j]-1][fire[i][j]]=1;
           a[fire[i][j]-1][fire[i][j]-2]=1;
           a[fire[i][j]-1][fire[i][j]-3]=1;

           a[fire[i][j]-2][fire[i][j]-2]=1;
           a[fire[i][j]][fire[i][j]]=1;
           a[fire[i][j]-2][fire[i][j]]=1;
           a[fire[i][j]][fire[i][j]-2]=1;

        }
    }

    for(int i=0;i<k;i++)
    {
        for(int j=0;j<2;j++)
        {
         cin >> light[i][j];

         //有萤石那一列
         a[light[i][j]-1][light[i][j]-1]=1;
         a[light[i][j]-2][light[i][j]-1]=1;
         a[light[i][j]-3][light[i][j]-1]=1;
         a[light[i][j]+1][light[i][j]-1]=1;
         a[light[i][j]][light[i][j]-1]=1;

         //萤石左侧的
         a[light[i][j]-1][light[i][j]-2]=1;
         a[light[i][j]-2][light[i][j]-2]=1;
         a[light[i][j]-3][light[i][j]-2]=1;
         a[light[i][j]+1][light[i][j]-2]=1;
         a[light[i][j]][light[i][j]-2]=1;

         //萤石右侧的
         a[light[i][j]-1][light[i][j]]=1;
         a[light[i][j]-2][light[i][j]]=1;
         a[light[i][j]-3][light[i][j]]=1;
         a[light[i][j]+1][light[i][j]]=1;
         a[light[i][j]][light[i][j]]=1;

         //萤石右侧的右侧
         a[light[i][j]-1][light[i][j]+1]=1;
         a[light[i][j]-2][light[i][j]+1]=1;
         a[light[i][j]-3][light[i][j]+1]=1;
         a[light[i][j]+1][light[i][j]+1]=1;
         a[light[i][j]][light[i][j]+1]=1;

         //萤石左侧的左侧
         a[light[i][j]-1][light[i][j]-3]=1;
         a[light[i][j]-2][light[i][j]-3]=1;
         a[light[i][j]-3][light[i][j]-3]=1;
         a[light[i][j]+1][light[i][j]-3]=1;
         a[light[i][j]][light[i][j]-3]=1;
        }
    }


    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            if(a[i][j]==0)
            {
                acount++;
            }
        }
    }
    cout << acount;

    return 0;
}
2022/3/4 09:34
加载中...