#include <iostream>
#include <string>
#include <chrono>
using namespace std;
const int N = 100000;
void add1(string &b) {
int diff = (N - (int)b.length());
for (int i = 0; i < diff; ++i) {
b = '0' + b;
}
return;
}
void add2(string &b) {
int diff = (N - (int)b.length());
b.insert(b.begin(), diff, '0');
return;
}
int main() {
string b = "1";
chrono::system_clock::time_point start, end;
// first method
start = chrono::system_clock::now();
add1(b);
end = chrono::system_clock::now();
auto duration = chrono::duration_cast<chrono::microseconds>(end-start);
cout << "add1: " << duration.count() << endl;
b = "1";
// second method
start = chrono::system_clock::now();
add2(b);
end = chrono::system_clock::now();
duration = chrono::duration_cast<chrono::microseconds>(end-start);
cout << "add2: " << duration.count() << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8Y2hyb25vPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IE4gPSAxMDAwMDA7Cgp2b2lkIGFkZDEoc3RyaW5nICZiKSB7CglpbnQgZGlmZiA9IChOIC0gKGludCliLmxlbmd0aCgpKTsKCWZvciAoaW50IGkgPSAwOyBpIDwgZGlmZjsgKytpKSB7CgkJYiA9ICcwJyArIGI7Cgl9CglyZXR1cm47Cn0KCnZvaWQgYWRkMihzdHJpbmcgJmIpIHsKCWludCBkaWZmID0gKE4gLSAoaW50KWIubGVuZ3RoKCkpOwoJYi5pbnNlcnQoYi5iZWdpbigpLCBkaWZmLCAnMCcpOwoJcmV0dXJuOwp9CgppbnQgbWFpbigpIHsKCXN0cmluZyBiID0gIjEiOwoJY2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgc3RhcnQsIGVuZDsKCQoJCgkvLyBmaXJzdCBtZXRob2QKCXN0YXJ0ID0gY2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpOwoJYWRkMShiKTsKCWVuZCA9IGNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKTsKCWF1dG8gZHVyYXRpb24gPSBjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8Y2hyb25vOjptaWNyb3NlY29uZHM+KGVuZC1zdGFydCk7Cgljb3V0IDw8ICJhZGQxOiAiIDw8IGR1cmF0aW9uLmNvdW50KCkgPDwgZW5kbDsKCQoJCgliID0gIjEiOwoJCgkvLyBzZWNvbmQgbWV0aG9kCglzdGFydCA9IGNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKTsKCWFkZDIoYik7CgllbmQgPSBjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCk7CglkdXJhdGlvbiA9IGNocm9ubzo6ZHVyYXRpb25fY2FzdDxjaHJvbm86Om1pY3Jvc2Vjb25kcz4oZW5kLXN0YXJ0KTsKCWNvdXQgPDwgImFkZDI6ICIgPDwgZHVyYXRpb24uY291bnQoKSA8PCBlbmRsOwoJCglyZXR1cm4gMDsKfQ==