PTA乙级题 1068. 万绿丛中一点红(20)

【题目链接】


看题目感觉有点复杂,读懂题目意思就好了。

#include<stdio.h>
int main()
{
    int m,n,e,i,j,k,l,p,q,x=0,flag;
    scanf("%d %d %d",&m,&n,&e);
    int a[n][m];
    for (i=0;i<n;i++)
    {
        for (j=0;j<m;j++)
        scanf("%d",&a[i][j]);
    }
    for (i=0;i<n;i++)
    {
        for (j=0;j<m;j++)
        {
            flag=0;
            if (i-1>=0)
            {
                if (a[i][j]-a[i-1][j]<=e&&a[i][j]-a[i-1][j]>=-e)
                flag=1;
            }
            if (i+1<n)
            {
                if (a[i][j]-a[i+1][j]<=e&&a[i][j]-a[i+1][j]>=-e)
                flag=1;
            }
            if (j-1>=0)
            {
                if (a[i][j]-a[i][j-1]<=e&&a[i][j]-a[i][j-1]>=-e)
                flag=1;
            }
            if (j+1<m)
            {
                if (a[i][j]-a[i][j+1]<=e&&a[i][j]-a[i][j+1]>=-e)
                flag=1;
            }
            if (i-1>=0&&j-1>=0)
            {
                if (a[i][j]-a[i-1][j-1]<=e&&a[i][j]-a[i-1][j-1]>=-e)
                flag=1;
            }
            if (i-1>=0&&j+1<m)
            {
                if (a[i][j]-a[i-1][j+1]<=e&&a[i][j]-a[i-1][j+1]>=-e)
                flag=1;
            }
            if (i+1<n&&j-1>=0)
            {
                if (a[i][j]-a[i+1][j-1]<=e&&a[i][j]-a[i+1][j-1]>=-e)
                flag=1;
            }
            if (i+1<n&&j+1<m)
            {
                if (a[i][j]-a[i+1][j+1]<=e&&a[i][j]-a[i+1][j+1]>=-e)
                flag=1;
            }

            for (k=0;k<n;k++)
            {
                for (l=0;l<m;l++)
                {
                    if (k==i&&l==j)
                    continue;
                    if (a[i][j]==a[k][l])
                    {
                        flag=1;
                        goto a;
                    }
                }
            }
 a:;
            if (flag==0)
            {
                p=i+1;
                q=j+1;
                x++;
            }
        }
    }
    if (x==0)
    printf("Not Exist");
    else if (x==1)
    printf("(%d, %d): %d",q,p,a[p-1][q-1]);
    else
    printf("Not Unique");
    return 0;
}