Problem: A. Cut and Paste when i am using
s=s+t; [this is giving me TLE on 37 test ] [128332169](https://mirror.codeforces.com/contest/1280/submission/128332169)
and s+=t; is Accepted 128332405 20 ms
can anyone tell me why such happen.???
# | 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 |
Problem: A. Cut and Paste when i am using
s=s+t; [this is giving me TLE on 37 test ] [128332169](https://mirror.codeforces.com/contest/1280/submission/128332169)
and s+=t; is Accepted 128332405 20 ms
can anyone tell me why such happen.???
Name |
---|
s = s + t;
this line will create new string object with values + t
and assign it tos
, complexity $$$O(|s| + |t|)$$$s += t;
this line just simply appendt
tos
, complexity $$$O(|t|)$$$This code produced the following output on my system
So avoid using assignment operator!
Thanks. Found where i am wrong.
When I'm running your code on Dev C++ it is printing 0 0, but in the online C++ compiler, it is giving the right answer. Can you please tell me what is wrong with the Dev C++ compiler? Thank You:)
I guess
CLOCKS_PER_SEC
on your system has the value 1000. So just add consuming stuff between 2clock()
call, you'll see the difference:For better precision, I suggest using chrono. IMO using
clock()
is better as it's really easy to remember the syntax.I think the '+' operator's complexity is O(2*(n1 + n2)), where n1 and n2 are the lengths of the strings s and t.
The complexity of the operator '+=' might only be O(2*n2) in some implementations on the other hand as only the append() operation is to be performed.
A Stack Overflow Thread
If there is a huge difference between the lengths of s and t, this could effectively work out as the difference between an O(N) algorithm and an O(1) algorithm, and could possibly lead to TLE.
Click