Page 1 of 1

Posted: Sun Oct 02, 2005 12:21 am
I feel this problem is very simple but i keep getting WA. isnt the answer same for 1960-1969,1970-1979,...

regards,
Yes, answer is the same for XXX0 - XXX9.
Test:

Code: Select all

``````1960
2160
2101
1999
1982
0
``````

Code: Select all

``````3
254016
5910
12
8
``````

### 10916 - Factstone Benchmark

Posted: Mon Nov 07, 2005 9:34 am
This is so simple problem, and I use my BigInteger class

( I think it's so fast )

But When my test year exceed 2100 then running speed

was seriously slower. ( it must calculate over 3000! )

Is there any technique for solving this problem?

// my pseudo code

while( bits can represent factorial )
{
next_number++;
factorial *= next_number;
}

return next_number;

Posted: Mon Nov 07, 2005 9:43 am
well, biginteger method would not be so fast,
since artimethic using BigInteger is too slow to process such a big number,
thus you cannot use BIGINTEGER method!

Think about logarithms, then problem becomes more simple.

hint) log(100!) = log(1 * 2 * 3 * ... * 100) = log1 + log2 + ... + log100

### Re: 10916 Time limit exceed problem

Posted: Sat Dec 10, 2005 9:39 pm
soyoja wrote:This is so simple problem, and I use my BigInteger class

( I think it's so fast )

But When my test year exceed 2100 then running speed

was seriously slower. ( it must calculate over 3000! )

Is there any technique for solving this problem?

// my pseudo code

while( bits can represent factorial )
{
next_number++;
factorial *= next_number;
}

return next_number;
problem statement wrote:Given a year 1960 ≤ y ≤ 2160

Posted: Wed May 10, 2006 1:12 am
isnt the answer going to be
the 21 values
for the set of years??
if yes then why am i getting WA?otherwise where am i wrong?
is there any boundary condition?

Posted: Wed May 10, 2006 6:49 am
Ankur Jaiswal wrote:isnt the answer going to be
...
for the set of years??
Do you understand that set of years is [1960,2160]?

Posted: Wed May 10, 2006 11:18 am
so that is what i am saying..
3 for the set of years 1960-1969
5 for 1970-1979
and so on.
isn't that rite?

Posted: Wed May 10, 2006 11:44 am
That is right. The I/O specification is too straightforward to do a mistake. Anyway you can try this

Code: Select all

``````1999
2000
2001
1960
1961
2160
2159
2160``````

Posted: Wed May 10, 2006 11:47 am
12
20
20
3
3
254016
134480
254016

Posted: Tue Mar 15, 2011 7:48 pm
Ankur Jaiswal wrote:12
20
20
3
3
254016
134480
254016
Your output is identical mine. I think your functionality should be right, but you may need to check that your program can terminate correctly or not.

### Re: 10916 - Factstone Benchmark

Posted: Tue Feb 25, 2014 2:23 pm