Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
Register

## Re:RE!!!附代码，求牛人指教

Posted by shenfangyi at 2006-10-17 14:12:17 on Problem 2918
In Reply To:RE!!!附代码，求牛人指教 Posted by:shenfangyi at 2006-10-17 06:01:35
```顶啊，跪求牛人

> #include<stdio.h>
> char a[9][7000000];
> int r[9][10],c[9][10],z[3][3][10];
> struct
> {
>     int x,y;
> }b[82];
> main()
> {
>     int n;
>     scanf("%d",&n);
>     for(int nn=1;nn<=n;nn++)
>     {
>         gets(a[0]);
>         int bb=0;
>         for(int i=0;i<9;i++)
>         {
>             gets(a[i]);
>             int k=0;
>             for(int j=0;j<9;j++)
>             {
>                 while((a[i][k]<'0')||(a[i][k]>'9'))k++;
>                 a[i][j]=a[i][k];
>                 k++;
>             }
>             a[i][9]=0;
>             for(int j=0;j<9;j++)
>             {
>                 if(a[i][j]=='0')
>                 {
>                     b[bb].x=i;
>                     b[bb].y=j;
>                     bb++;
>                 }
>                 else r[i][a[i][j]-'0']=c[j][a[i][j]-'0']=z[i/3][j/3][a[i][j]-'0']=1;
>             }
>         }
>         int i=0;
>         while(i<bb)
>         {
>             int j=a[b[i].x][b[i].y]-'0'+1;
>             for(;j<10;j++)
>             {
>                 if((!r[b[i].x][j])&&(!c[b[i].y][j])&&(!z[b[i].x/3][b[i].y/3][j]))
>                 {
>                     r[b[i].x][j]=c[b[i].y][j]=z[b[i].x/3][b[i].y/3][j]=1;
>                     a[b[i].x][b[i].y]=j+'0';
>                     break;
>                 }
>             }
>             if(j<10)
>             {
>                 i++;
>                 if(i<bb)a[b[i].x][b[i].y]='0';
>             }
>             else
>             {
>                 i--;
>                 r[b[i].x][a[b[i].x][b[i].y]-'0']=c[b[i].y][a[b[i].x][b[i].y]-'0']=z[b[i].x/3][b[i].y/3][a[b[i].x][b[i].y]-'0']=0;
>             }
>         }
>         printf("Scenario #%d:\n",nn);
>         for(int i=0;i<9;i++)puts(a[i]);
>         puts("");
>     }
> }
```

Followed by: