I wrote this post to help my friend , Iman Movahhedi , complete this one.
Round #40 was my first contest here in Codeforces and I feel I fell in love with CF just after that.

A-Translation: (C# code)
Many languages have built-in reverse() function for strings. we can reverse one of the strings and check if it's equal to the other one , or we can check it manually. I prefer the second.

B-Martian Dollar: (C# code)
Since number of days is very small (2 × 103) we can just iterate over all possibilities of buy-day and sell-day. This will take θ (n2) time which is OK.

The first letter of the input string can not be part of an "at" or a "dot" so we start from the second character. Greedily put "." wherever you reached "dot" and put "@" the first time you reached "at". This will take θ(n) time , where n is the length of input.

D-Pawn:
For each cell of the table store k + 1 values. Where ith value is the maximum number of peas the pawn can take while he is at that cell and this number mod k + 1 is i.
This makes a O(n2 × m × k) dynamic programming which fits perfectly in the time.

E-3-cycles: (C++ code)
The road map with most edges is a complete bipartite graph with equal number of vertices on each side. (Prove it by yourself :D ). We can make such a graph by putting the first vertices on one side and the other on the other side.For sure , number of edges is .

• +21

| Write comment?
 » 10 years ago, # |   0 To help understand the proof for E, check this comment http://www.codeforces.com/blog/entry/843#comment-13876
 » 7 years ago, # | ← Rev. 2 →   0 I think problem D can be solved in O(nmk), see code.
•  » » 7 years ago, # ^ |   0 you mean D :)
•  » » » 7 years ago, # ^ |   0 Thanks!
 » 17 months ago, # |   0 question — A(Translation) for me Wrong answer on test 32...but i don't know why.... i'm not use any built in functions...
•  » » 4 months ago, # ^ |   0 string s, s1; cin >> s >> s1; `reverse(s.begin(), s.end()); if(s == s1){ cout << "YES" <
 » 4 months ago, # |   0 Bkl