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 1007. Code Words

I know that it is stupid to read all strings and then process them, instead of reading one - processing it, reading next, processing it and so on.
But I coded as wrote before(read all and then solve)

I created int r[1024][1024], because in the task there is written that "There are no more than 1000 words in the file", and size of each is no more than 1001(initially is 1000, but with one inserted symbol...). I got Crash(access violation), I guessed that maybe I addressed inaccessible memory.
I updated my code and replaced it by this:

char r[1024][1024];

    string s;
    cin>>n;

    m = 0;
    cin>>s;
    while (!(cin.eof())){
        if (m > 1000)
            continue;
        if (s.size()>n+1)
            return;
        if (s.size()<n-1)
            return;
        strcpy(r[m++],s.c_str());
        len[m-1] = strlen(r[m-1]);
        cin>>s;
    }

and got TL test 3. So it was, I think, because of
        if (m > 1000)
            continue;

then I made int r[3000][1024] and got AC ))
why? maybe there is more than 1000 words in the file?
Vladimir Yakovlev (USU) Yes, there are about 2000 words in test 3 (-) [1] // Problem 1007. Code Words 7 Dec 2006 20:20
It,s unfair!
One year I have been thinking that "I too stupid to
solve this problem"
Firstly we are supplied with onest information
and immediately have Ac  simply increased sizez of arrays.
I think there are not fewer than 10-15 such problem's
statements with errors.