ENG  RUSTimus Online Judge
Online Judge
Problems
Authors
Online contests
About Online Judge
Frequently asked questions
Site news
Webboard
Links
Problem set
Submit solution
Judge status
Guide
Register
Update your info
Authors ranklist
Current contest
Scheduled contests
Past contests
Rules
back to board

Discussion of Problem 1036. Lucky Tickets

Help plz...How do you store the numbers?(+)
Posted by Algorist 6 Mar 2002 18:07
My idea is to solve it using DP of course. I have to use large
numbers for the result, unfortunately. Which means, that if I have an
array
50*500*sizeof(large num)
i'll have
25000*sizeof(large num)
large nums have about 100 digits, which is 100 bytes, so
25000*100=2500000=2 500 000 bytes, which is more than 1000K :(
If I use just recursion and do not store the results, I'll get time
limit exceeded.
My idea was to have the large numbers as
struct(=class=record) large {
 char* num;
 int size;
}
and allocate memory enough for each of the digits of every number.
The problem is that in C i have to use mallloc and realloc(I know I
can use new instead of malloc, but realloc is the real problem).
Realloc, however, doesn't work OK on my computer and on TIMUS, as I
have seen it :)) The strange fact is that if I trace the program, it
works fine, and if I run it -> it fails. I have the same problem on
another problem on timus, I do not remember which it was. Maybe
because I am allocating too much memory on too many pieces, which are
very small(a byte per time, about a million of times).

So, I help someone has read that,and that someone is going to help
about
1) What to use to solve the problem?
2) How can I solve the problem with realloc