人間夜行

一切の有為の法 夢幻泡影の如し

RQNOJ 289 验证数独

| 评论

//小心一点就好了。悲剧最近经常在小地方出错。做题三思!
#include <stdio.h>
int map[10][10];
int tjx(int y)
{
        int stat[10]={0};
        int i;
        for(i=1;i<=9;i++)
                stat[map[i][y]]++;
        for(i=1;i<=9;i++)
                if(stat[i]!=1) return 0;
        return 1;
}
int tjy(int x)
{
        int stat[10]={0};
        int i;
        for(i=1;i<=9;i++)
                stat[map[x][i]]++;
        for(i=1;i<=9;i++)
                if(stat[i]!=1) return 0;
        return 1;
}
int tjn(int x,int y)
{
        int stat[10]={0};
        int i,r;
        for(i=x;i<=x+2;i++)
                for(r=y;r<=y+2;r++)
                        stat[map[i][r]]++;
        for(i=1;i<=9;i++)
                if(stat[i]!=1) return 0;
        return 1;
}
int main()
{
        int i,r;
        for(i=1;i<=9;i++)
                for(r=1;r<=9;r++)
                        scanf("%d",&map[i][r]);
        int heng=0;
        int shu=0;
        int nine=0;
        for(i=1;i<=9;i++)
        {
                shu+=tjx(i);
                heng+=tjy(i);
        }
        nine+=tjn(1,1);
        nine+=tjn(1,4);
        nine+=tjn(1,7);
        nine+=tjn(4,1);
        nine+=tjn(4,4);
        nine+=tjn(4,7);
        nine+=tjn(7,1);
        nine+=tjn(7,4);
        nine+=tjn(7,7);
        if(heng+shu+nine==27) printf("1");
        else printf("0");
        return 0;
}

评论