Moderator: Board moderators

Ankur Jaiswal
New poster
Posts: 31
Joined: Sat Apr 01, 2006 6:24 am
Contact:
i got a direct formula for the second grp numbers (i.e the numbers not ending in 0) but i am not able to get the formula for the numbers ending in 0...So, i got TLE.
my output is correct.
i am using following code for the numbers ending in 0 -

Code: Select all

``````for(i=temp;i<=q;i+=10){
p=i;
while(p%10==0)
p/=10;
ans+=p%10;
}
``````

sakhassan
Experienced poster
Posts: 105
Joined: Sat Mar 11, 2006 9:42 am
Location: cse,DU
U can modify the formula as follows:

function()
{

............
............
while(n)
{
m = n%10;
n = n/10;
s1 += ( ( m * (m+1) ) / 2 );
s2 += (double)n * 45;

}

return (s1 + s2);

}
-------------------------------------
When u call the function

just
if(p)
sum = function(q)-function(p-1)
else
sum = function(q)

Hope TLE will mitigate..... this time

Ankur Jaiswal
New poster
Posts: 31
Joined: Sat Apr 01, 2006 6:24 am
Contact:
Thanx a lot for providing such a simple alternative but now i am getting WA

Martin Macko
A great helper
Posts: 481
Joined: Sun Jun 19, 2005 1:18 am
Location: European Union (Slovak Republic)
Ankur Jaiswal wrote:Thanx a lot for providing such a simple alternative but now i am getting WA
Try these test cases:

Code: Select all

``````0 0
0 1
0 2
0 3
1 1
1 2
1 3
2 2
2 3
3 3
0 2147483647
4868141 2147483647
2147483646 2147483647
2147483647 2147483647
0 1697831704
1 1697831704
5874571 5874571
8547855 8547856
100580521 1989930148
155996425 1206496545
147550223 1536716708
707325775 1340801806
1040075891 1420810599
1714064943 1984493018
686413674 1329025269
736919653 1524063966
71724731 579366154
166786016 735362579
1002657859 1541865667
784743773 2037402352
-7 -7``````
My AC's output:

Code: Select all

``````0
1
3
6
1
3
6
2
5
3
10737418158
10713077499
13
7
8489158466
8489158466
1
11
9446748140
5252500596
6945832429
3167380180
1903673541
1352140396
3213057997
3935721558
2538207103
2842882808
2696039024
6263292902``````

Spykaj
New poster
Posts: 47
Joined: Sun May 21, 2006 12:13 pm
Thanks, good tests ;] i have acc.

kintu
New poster
Posts: 6
Joined: Sun Mar 18, 2007 11:31 am
Location: In home

### Why CE????

/* Remove Whole Messege as no help come */
Last edited by kintu on Thu Jun 28, 2007 1:56 pm, edited 1 time in total.

little joey
Guru
Posts: 1080
Joined: Thu Dec 19, 2002 7:37 pm

### Re: Why CE????

kintu wrote: But what hell happen to Online Judge.
Well, not very much lately...

About your problem: untyped numeric constants, consisting of digits only, are translated by the compiler in to integers, which have a range [-2^31..2^31>. The number 4.5 billion is outside this range, so it issues an error.

Add a type to the constant by using the proper suffix, and it will be fine. "4500000000ll" will do.
The biggest problem with most problems is not how to solve the problem, but how to not solve what is not the problem.

kintu
New poster
Posts: 6
Joined: Sun Mar 18, 2007 11:31 am
Location: In home
well, as i know befire that long long type integer have a range= 2^64
Which is in the range of 4.5billion
So, what type problem has occured here, i can't understand.
And by-
Add a type to the constant by using the proper suffix, and it will be fine. "4500000000ll" will do.
what you want to do, i can't understand. Please can you explain where to modify my code???

annhy
New poster
Posts: 40
Joined: Sun May 27, 2007 1:42 am
Location: Taiwan
Martin Macko wrote:Try these test cases:

Code: Select all

``````0 0
0 1
0 2
0 3
1 1
1 2
1 3
2 2
2 3
3 3
0 2147483647
4868141 2147483647
2147483646 2147483647
2147483647 2147483647
0 1697831704
1 1697831704
5874571 5874571
8547855 8547856
100580521 1989930148
155996425 1206496545
147550223 1536716708
707325775 1340801806
1040075891 1420810599
1714064943 1984493018
686413674 1329025269
736919653 1524063966
71724731 579366154
166786016 735362579
1002657859 1541865667
784743773 2037402352
-7 -7``````
My AC's output:

Code: Select all

``````0
1
3
6
1
3
6
2
5
3
10737418158
10713077499
13
7
8489158466
8489158466
1
11
9446748140
5252500596
6945832429
3167380180
1903673541
1352140396
3213057997
3935721558
2538207103
2842882808
2696039024
6263292902``````
Thanks Macko, I got AC.

For someone still getting WA: note the overflowing cases!!

hosnayen
New poster
Posts: 4
Joined: Mon Dec 28, 2009 8:41 pm

### Re: 10994 Compile Error

Can any1 help me ... where is my fault.. it seems to be ok.. or give me some critical input..
here is my code... thanks in advance

Code: Select all

``````/*
Author : Hosnayen Alam Siddiquee.
University of Science & Technology Chittagong (USTC)
CSE- 11th Batch
E-mail: hosnayen_alam@yahoo.com
*/

#include<cstdio>
#include<sstream>
#include<cstdlib>
#include<cctype>                     // n(n+1)/2
#include<cmath>
#include<algorithm>
#include<set>
#include<queue>
#include<stack>
#include<list>
#include<iostream>
#include<fstream>
#include<numeric>
#include<string>
#include<vector>
#include<cstring>
#include<map>
#include<iterator>

using namespace std;

int main(){

long long p,q;
long long ans1,ans2;

while(scanf("%lld%lld",&p,&q)==2){

if(p < 0 && q < 0) break;

p=p-1;

ans1=0,ans2=0;

ans1=(p/10)*45 + (p%10)*(p%10+1)/2  + (p/10)*(p/10+1)/2;

ans2=(q/10)*45 + (q%10)*(q%10+1)/2  + (q/10)*(q/10+1)/2;

printf("%lld\n",ans2 - ans1);

}
return 0;
}``````

Experienced poster
Posts: 136
Joined: Sat Nov 29, 2008 8:01 am
Contact:

### Re: 10994 Compile Error

Do you think your algorithm is right??.I don't know how did you derive this formula.Your formula
is not correct.try this

Code: Select all

``````input:
100 123
122 1112
-1 -1

Actual output:
100
4951

129
10595

``````
And this problem is in volume CIX, not in volume I.So use volume CIX.
Life is more complicated than algorithm.
http://felix-halim.net/uva/hunting.php?id=32359

DD
Experienced poster
Posts: 145
Joined: Thu Aug 14, 2003 8:42 am
Location: Mountain View, California
Contact:

### Re:

Martin Macko wrote:
Ankur Jaiswal wrote:Thanx a lot for providing such a simple alternative but now i am getting WA
Try these test cases:

Code: Select all

``````0 0
0 1
0 2
0 3
1 1
1 2
1 3
2 2
2 3
3 3
0 2147483647
4868141 2147483647
2147483646 2147483647
2147483647 2147483647
0 1697831704
1 1697831704
5874571 5874571
8547855 8547856
100580521 1989930148
155996425 1206496545
147550223 1536716708
707325775 1340801806
1040075891 1420810599
1714064943 1984493018
686413674 1329025269
736919653 1524063966
71724731 579366154
166786016 735362579
1002657859 1541865667
784743773 2037402352
-7 -7``````
My AC's output:

Code: Select all

``````0
1
3
6
1
3
6
2
5
3
10737418158
10713077499
13
7
8489158466
8489158466
1
11
9446748140
5252500596
6945832429
3167380180
1903673541
1352140396
3213057997
3935721558
2538207103
2842882808
2696039024
6263292902``````
Thanks for your test case, I got some bugs from my program by this.
Have you ever...
• Wanted to work at best companies?
• Struggled with interview problems that could be solved in 15 minutes?
• Wished you could study real-world problems?
If so, you need to read Elements of Programming Interviews.

dotnet12
New poster
Posts: 4
Joined: Fri Aug 17, 2012 9:43 pm

### #10994- Need help

The solution is correct but it exceeds time limit so what can I do about it? Please tell me anyone. Here is my solution:

#include <stdio.h>

int fu(int ab)
{

if(ab%10>0 && ab>0)
{
return ab%10;
}
else
{
return ab/10;
}
}

int S(int a,int b)
{
int ans=0,i;
for(i=a;i<=b;i++)
{
ans+=fu(i);

}
printf("%d", ans);
return 0;
}

int main()
{
int in1,in2,ans;
while((scanf("%d %d",&in1,&in2)==2) && (in1!=-1 && in2!=-1))
{

if(in1>in2)
{
S(in2,in1);

}
else
{
S(in1,in2);

}

}
return 0;

}

brianfry713
Guru
Posts: 5947
Joined: Thu Sep 01, 2011 9:09 am
Location: San Jose, CA, USA

### Re: #10994- Need help

Brute force won't work here, you'll need to come up with a faster solution.
Check input and AC output for thousands of problems on uDebug!

dotnet12
New poster
Posts: 4
Joined: Fri Aug 17, 2012 9:43 pm

can u give 1?