|  | 
|  | 
| вернуться в форум | Why WA 5? Is there some special case which I could've missed ? int pre[8]={4123,1324,1234,1324,1243,2413,2134,4123};
 LL solve(LL n)
 {
 if (n/10000==0)
 return 4123;
 
 int k,j,i,p,b[5]={0};
 LL m=0;
 LL res=10000;
 while (true)
 {
 p=n%10;
 n/=10;
 
 if (p==0)
 b[0]++;
 else
 if (p==1 && !b[1])
 b[1]=1;
 else
 if (p==2 && !b[2])
 b[2]=1;
 else
 if (p==3 && !b[3])
 b[3]=1;
 else
 if (p==4 && !b[4])
 b[4]=1;
 else
 {
 m+=p*res;
 res*=10;
 }
 if(n==0) break;
 }
 
 if (m==0)
 {
 i=-1;
 res=1;
 for (j=1;j<=b[0];j++)
 res*=(LL)10;
 while (true)
 {
 i++;
 if ((pre[i]*res)%7==0)
 break;
 }
 return pre[i]*res;
 }
 else
 if(b[0]>0)
 {
 for (i=0;i<b[0];i++)
 {
 m*=(LL)10;
 res*=(LL)10;
 }
 k=m%7;
 return m+pre[7-k];
 }
 
 else
 {
 k=m%7;
 m+=pre[7-k];
 return m;
 }
 }
 
 where LL is unsigned long long. Can give me some tests if possible
 
 Edited by author 19.07.2006 14:18
Re: Why WA 5? Is there some special case which I could've missed ? Послано fredAC  10 сен 2009 20:15wa too,trace my coderemainder[7-((a%7)*4)%7],so when a%7 ==0;
 the remainder[7] is uninitilized,
 | 
 | 
|