40分,大佬求解
查看原帖
40分,大佬求解
739437
notwhy楼主2022/7/1 01:52
#include <stdio.h>
int main()
{
    int n, m, k;
    int x, y, count = 0;
    scanf("%d %d %d", &n, &m, &k);
    int a[2000][2000];
    int tor[15][15] = {{0, 0}, {2, 0}, {0, 2}, {-2, 0}, {0, -2}, {1, 1}, {1, 0}, {1, -1}, {0 ,1}, {0, -1}, {-1, 0}, {-1, 1}, {-1, -1}};
    int ys[30][30] = {{0, 0}, {-2, -2}, {-2, -1}, {-2, 0}, {-2, 1}, {-2, 2}, {-1, -2}, {-1, -1}, {-1, 0}, {-1, 1}, {-1, 2}, {-1, -2}, {0, -1}, {0, 1}, {0, 2}, {0, -2}, {1, -1}, {1, 0}, {1, 1}, {1, 2}, {1, -2}, {2, -1}, {2, 0}, {2, 1}, {2, 2}};
    for(int i = 0; i <= n; i++)
    {
        for(int j = 0; j <= n; j++)
        {
            a[i][j] = 0;
        }
    }
    for(int i = 0; i < m; i++)
    {
        scanf("%d %d", &x, &y);
        for(int j = 0; j < 13; j++)
        {
            if(x + tor[j][0] >= 0 && y + tor[j][1] >= 0)
                a[x + tor[j][0]][y + tor[j][1]] = 1;
        }
    }
    for(int i = 0; i < k; i++)
    {
        scanf("%d %d", &x, &y);
        for(int j = 0; j < 25; j++)
        {
            if(x + ys[j][0] >= 0 && ys[j][1] >= 0)
                a[x + ys[j][0]][y + ys[j][1]] = 1;
        }
    }
    for(int i = 1; i <= n; i++)
    {
        for(int j = 1; j <= n; j++)
        {
            if(a[i][j] == 0)
                count++;
        }
    }
    printf("%d", count);
    return 0;
}
2022/7/1 01:52
加载中...