Page 3 of 5

Re: 11371 - Number Theory for Newbies

Posted: Fri May 09, 2008 1:32 pm
by amr saqr
Thanx so much Sohel,
I've got Accepted :)

Re: 11371 - Number Theory for Newbies

Posted: Fri May 30, 2008 12:23 am
by Mohamed Abd El-Monem
i changed my code and modified it but I still get WA :cry:

Code: Select all

deleted after accepted

Re: 11371 - Number Theory for Newbies

Posted: Mon Jun 02, 2008 10:19 am
by rio
Try this input.

Code: Select all

1999999999
-----
Rio

Re: 11371 - Number Theory for Newbies

Posted: Thu Jun 12, 2008 12:28 am
by Mohamed Abd El-Monem
thaaax rio I get accepted

11371 - Number Theory for Newbies

Posted: Fri Jun 20, 2008 8:43 am
by lnr

Code: Select all

Thanks rio for your input.
My code has bug for this input.
I took input as a string.
I used long double as j to find the number like 1999999999.
sum=0;
for(i=0,j=1;str[i];i++,j=j*10)
sum=sum+str[i]*j;

Re: 11371 - Number Theory for Newbies

Posted: Fri Aug 22, 2008 6:47 pm
by Samiul
Can anybody tell me why my code is giving me TLE

Code: Select all

Deleted

Re: 11371 - Number Theory for Newbies

Posted: Fri Aug 22, 2008 8:42 pm
by amr saqr
i don't know actually,
try change the line
while(scanf("%lld" , &val1))
to
while(scanf("%lld" , &val1)!=EOF)

Re: 11371 - Number Theory for Newbies

Posted: Fri Aug 22, 2008 9:52 pm
by Samiul
Thanks a lot, there was the problem.

Re: 11371 - Number Theory for Newbies

Posted: Sat Aug 23, 2008 1:10 am
by amr saqr
u r welcome :)

Re: 11371 - Number Theory for Newbies

Posted: Thu Dec 25, 2008 2:06 pm
by rehan
can anyone tell me what is the problem with my code.
I have used all necessary data type,but still it is getting WA,why? why? why? why? why? why? :cry: :cry:

Code: Select all

(code is done in C)
#include <stdio.h>

#include <string.h>

#include <algorithm>

#include <math.h>

 using namespace std ;

int main()

{

 char a[20],b[20];

     long long len,i,j,n,sum,g1,g2,x,y,z;



     while(scanf("%s",a)==1)

     {

        sum=0;

       int k=0,p=0,val=10;

     len=strlen(a);

     sort(&a[0],&a[len]);

         for(i=0,j=len-1;i<len;i++,j--)

         {

         if(a[i]=='0') k++;

         else{

         p++;sum=sum*val+a[i]-'0'; }

         b[j]=a[i];

        }

         b[len]=NULL;

         g1=atol(b);

       if(k!=0)

      {  z=pow(10,p-1);

        x=sum/z;

        y=sum%z;

       g2=(pow(10,k+p-1))/x+y;      }

       else

       g2=atol(a);



       printf("%lld - %lld = %lld = 9 * %lld\n",g1,g2,g1-g2,(g1-g2)/9);



    }

return 0;

}

Re: 11371 - Number Theory for Newbies

Posted: Thu Dec 25, 2008 4:57 pm
by helloneo
rehan wrote:can anyone tell me what is the problem with my code.
I have used all necessary data type,but still it is getting WA,why? why? why? why? why? why? :cry: :cry:
Try this input

Code: Select all

100
Output should be..

Code: Select all

100 - 100 = 0 = 9 * 0

Re: 11371 - Number Theory for Newbies

Posted: Sat Dec 27, 2008 2:51 pm
by rehan
hi helloneo,
u have told me to take 100 as input
which show "100 - 100 = 0 = 9 * 0"
as output 4 my code also ,but still its getting WA!
can u solve my problem???????

Re: 11371 - Number Theory for Newbies

Posted: Sat Dec 27, 2008 4:15 pm
by helloneo
rehan wrote:hi helloneo,
u have told me to take 100 as input
which show "100 - 100 = 0 = 9 * 0"
as output 4 my code also ,but still its getting WA!
can u solve my problem???????
Oops.. Sorry for confusing.. :-)

More test cases..

Code: Select all

100
200
300
400
500
Output

Code: Select all

100 - 100 = 0 = 9 * 0
200 - 200 = 0 = 9 * 0
300 - 300 = 0 = 9 * 0
400 - 400 = 0 = 9 * 0
500 - 500 = 0 = 9 * 0
:-)

Re: 11371 - Number Theory for Newbies

Posted: Sun Dec 28, 2008 10:33 am
by Obaida
I am confused about this solution??? :-?
This post is from sohle vai.
There is a greedy approach!

The largest number can be found by sorting the input number in descending order.

The smallest one can be found by sorting in ascending order.. but there could be a case of leading 0. By swapping the smallest non zero digit with the first zero, this can be handled.

Example :
Input --> 12300

Largest number - 32100
Smallest number - 00123 --> 10023
But My question is now if the value is 100 then why the smallest value is 100?????
Some one plz explain.

Re: 11371 - Number Theory for Newbies

Posted: Sun Dec 28, 2008 4:13 pm
by shiplu_1320
by rearranging 100, we can get

Code: Select all

010
001
and both has leading zero.
so the only valid number is 100 and it is the max and min both.