Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- main(){
- int array[9][9];
- int check[10];
- int flag; /* 1 = yes */
- int indexR, indexC, index;
- int startR, startC, nine;
- while ( scanf("%d", &array[0][0]) != EOF ){
- for ( indexR=0 ; indexR<9 ; indexR++ ){
- for ( indexC=0 ; indexC<9 ; indexC++ ){
- if ( indexR==0 && indexC==0 )
- continue;
- scanf("%d", &array[indexR][indexC]);
- }
- }
- flag = 1;
- /* check each row */
- for ( indexR=0 ; indexR<9 ; indexR++ ){
- /* reset check[index] */
- for ( index=0 ; index<10 ; index++ )
- check[index]=0;
- for ( indexC=0 ; indexC<9 ; indexC++ ){
- check[array[indexR][indexC]]++;
- if ( check[array[indexR][indexC]] > 1 ){
- flag = 0;
- break;
- }
- }
- if ( flag == 0 )
- break;
- } /* END row check */
- /* check each column */
- if ( flag == 1){
- for ( indexR=0 ; indexR<9 ; indexR++ ){
- /* reset check[index] */
- for ( index=0 ; index<10 ; index++ )
- check[index]=0;
- for ( indexC=0 ; indexC<9 ; indexC++ ){
- check[array[indexC][indexR]]++;
- if ( check[array[indexC][indexR]] > 1 ){
- flag = 0;
- break;
- }
- }
- if ( flag == 0 )
- break;
- }
- } /* END column check */
- if ( flag == 1 ){
- startR=0, startC=0;
- for ( nine=1 ; nine<10 ; nine++ ){
- /* reset check[index] */
- for ( index=0 ; index<10 ; index++ )
- check[index]=0;
- for ( indexR=startR ; indexR<startR+3 ; indexR++ ){
- for ( indexC=startC ; indexC<startC+3 ; indexC++ ){
- check[array[indexR][indexC]]++;
- if ( check[array[indexR][indexC]] > 1 ){
- flag = 0;
- break;
- }
- }
- if ( flag == 0 )
- break;
- }
- if ( flag == 0 )
- break;
- if ( startC == 6 )
- startC = 0;
- else startC += 3;
- if ( nine%3 == 0 )
- startR += 3;
- } /* END for nine */
- }
- if ( flag == 0 )
- printf("no\n");
- else printf("yes\n");
- } /* END big while */
- system("PAUSE");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement