1 solutions

  • 0
    @ 2025-11-5 15:28:50

    C :

    #include <stdio.h>
    
    int main()
    {
        int a[7][7] = {0};
        int dx[8] = { 0, 1, 1, 1, 0,-1,-1,-1};
        int dy[8] = {-1,-1, 0, 1, 1, 1, 0,-1};
        int n,m,k;
        int i,j;
        scanf("%d%d%d",&n,&m,&k);
        for(i=0; i<k; ++i)
        {
            int x,y;
            scanf("%d%d",&x,&y);
            a[x][y] = -1;
            for(j=0; j<8; ++j)
            {
                if(a[x+dx[j]][y+dy[j]] != -1)
                    ++a[x+dx[j]][y+dy[j]];
            }
        }
        for(i=1; i<=n; ++i)
        {
            for(j=1; j<m; ++j)
            {
                if(a[i][j] != -1)
                    printf("%d ", a[i][j]);
                else
                    printf("%c ", '*');
            }
            if(a[i][m] != -1)
                printf("%d\n", a[i][m]);
            else
                printf("%c\n", '*');
        }
        return 0;
    }
    

    C++ :

    //第一行有3个数字n,m和k。
    #include<iostream>
    using namespace std;
    int dir[8][2]={{-1,1},{0,1},{1,1},{-1,0},{1,0},{-1,-1},{0,-1},{1,-1}}; 
    int main()
    {
    	int n,m,k,x,y;
    	int map[5][5]={0};
    	int Falg[5][5]={0};
    	cin>>m>>n>>k;
    	for(int i=0;i<k;i++)
    	{
    		cin>>x>>y;
    		Falg[x-1][y-1]=1;
    		for(int j=0;j<8;j++)
    		{
    			int tempx=x-1+dir[j][0];
    			int tempy=y-1+dir[j][1];
    			if(tempx<m&&tempx>=0&&tempy<n&&tempy>=0)
    				map[tempx][tempy]++;
    		}
    	}
    	for(int i=0;i<m;i++)
    	for(int j=0;j<n;j++)
    	{
    		if(Falg[i][j])
    		printf(j!=n-1 ? "* ":"*\n");
    		else 
    		printf(j!=n-1 ? "%d ":"%d\n",map[i][j]);
    	}
    	
    	return 0;
    } 
    
    • 1

    Information

    ID
    16840
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By