https://ideone.com/yQshPe this is my submission i cant figure why its always showing TLE. https://codingcompetitions.withgoogle.com/codejam/round/00000000000516b9/0000000000134e91#
# | User | Rating |
---|---|---|
1 | tourist | 3985 |
2 | jiangly | 3814 |
3 | jqdai0815 | 3682 |
4 | Benq | 3529 |
5 | orzdevinwang | 3526 |
6 | ksun48 | 3517 |
7 | Radewoosh | 3410 |
8 | hos.lyric | 3399 |
9 | ecnerwala | 3392 |
9 | Um_nik | 3392 |
# | User | Contrib. |
---|---|---|
1 | cry | 169 |
2 | maomao90 | 162 |
2 | Um_nik | 162 |
4 | atcoder_official | 161 |
5 | djm03178 | 158 |
6 | -is-this-fft- | 157 |
7 | adamant | 155 |
8 | awoo | 154 |
8 | Dominater069 | 154 |
10 | luogu_official | 150 |
https://ideone.com/yQshPe this is my submission i cant figure why its always showing TLE. https://codingcompetitions.withgoogle.com/codejam/round/00000000000516b9/0000000000134e91#
Name |
---|
Line 67, you need to read f only once, not for every test case.
still no avail
There is a logical mistake in your code. On line 111, you checked if(k[i].size()==5) so on line 137, you should check if(k[i].size()==1) instead of ==2.
Auto comment: topic has been updated by kumarpratyush4 (previous revision, new revision, compare).
I don't know what the particular bug is, but the code is in a sad state.
g=g+char(t+'A');
to justg+char(t+'A');
All that adds up, so that when such program works, it's no less than a miracle, usually with a few hours wasted on debugging it. Try working on your coding practices to make programs work routinely, not miraculously.
thank you very much for your advice. couldn't clearly understand your 2nd point-(copying a part of the code and modifying a bit, instead of thinking a bit more how to parameterize it and turn into a loop body or a function)-could you give an example?
OK, you took a block like this:
And then you copied it a few times.
By hand.
Changed some values on the way (probability of mistake increases with each such change).
Changed the header for every block except the first one (clearing the variables for reuse, instead of creating them in a scope every time). Again, bear in mind that, in every place you change, there is a probability that your change is incorrect, so more changes means more bugs, on average.
Then it happens that each block has a bug which was copied to each of them. Once more, fixing the same bug in five places is more likely to go wrong than fixing it just once in one place, as we can see with the
g+char(t+'A');
situation.Instead, we can stop and think: what changes between such blocks? Looks like it's just a couple of constants, and they can be used as parameters. So you can declare the constants that change as, well, arrays of constants in your program. And then loop four or five times, with the loop body representing one block. Or maybe declare a function instead of a loop body, and call it five times with different parameters. As a bonus, if you declare local variables like
v64 v;
inside the loop body, or inside the function body, you don't have to clear them before each such block.Why would the programmer do the repetitive work of copying, changing, then fixing the bugs in five places? Repetitive jobs are best delegated to the computer, it's powerful at doing them.
Thanks, the irony is i did the same mistake during the contest just after and lost some rating. learnt a very valuable lesson thanks!!