#include <cstdlib>
#include <cmath>
#include <cstdint>
#include <iostream>
#include <sstream>
#include <set>
#include <iterator>
#include <algorithm>
#include <iostream>
#include <chrono>
using namespace std;
const auto n = 10000000ULL; // constexptr is tested, no effect
int main() {
{
auto t1 = std::chrono::high_resolution_clock::now();
std::string s;
for (auto i = 0ULL; i < n; i++)
s += "1234567890";
auto x = s.length();
auto t2 = std::chrono::high_resolution_clock::now();
auto t = std::chrono::duration_cast<std::chrono::nanoseconds>(t2 - t1).count();
cout << "Result: " << x << " -- time (ms):" << t / 0.1e7 << endl;
}
auto t1 = std::chrono::high_resolution_clock::now();
std::ostringstream ss;
for (auto i = 0ULL; i < n; i++)
ss << "1234567890";
auto x = ss.str().length();
auto t2 = std::chrono::high_resolution_clock::now();
auto t = std::chrono::duration_cast<std::chrono::nanoseconds>(t2 - t1).count();
cout << "Result: " << x << " -- time (ms):" << t / 0.1e7 << endl;
}
I2luY2x1ZGUgPGNzdGRsaWI+CiNpbmNsdWRlIDxjbWF0aD4KI2luY2x1ZGUgPGNzdGRpbnQ+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHNzdHJlYW0+CiNpbmNsdWRlIDxzZXQ+CiNpbmNsdWRlIDxpdGVyYXRvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y2hyb25vPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGF1dG8gbiA9IDEwMDAwMDAwVUxMOyAvLyBjb25zdGV4cHRyIGlzIHRlc3RlZCwgbm8gZWZmZWN0CgppbnQgbWFpbigpIHsKICAgIHsKICAgICAgICBhdXRvIHQxID0gc3RkOjpjaHJvbm86OmhpZ2hfcmVzb2x1dGlvbl9jbG9jazo6bm93KCk7CgogICAgICAgIHN0ZDo6c3RyaW5nIHM7CgogICAgICAgIGZvciAoYXV0byBpID0gMFVMTDsgaSA8IG47IGkrKykKICAgICAgICAgICAgcyArPSAiMTIzNDU2Nzg5MCI7CgogICAgICAgIGF1dG8geCA9IHMubGVuZ3RoKCk7CgogICAgICAgIGF1dG8gdDIgPSBzdGQ6OmNocm9ubzo6aGlnaF9yZXNvbHV0aW9uX2Nsb2NrOjpub3coKTsKICAgICAgICBhdXRvIHQgPSBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6bmFub3NlY29uZHM+KHQyIC0gdDEpLmNvdW50KCk7CiAgICAgICAgY291dCA8PCAiUmVzdWx0OiAiIDw8IHggPDwgIiAtLSB0aW1lIChtcyk6IiA8PCB0IC8gMC4xZTcgPDwgZW5kbDsKICAgIH0KCiAgICBhdXRvIHQxID0gc3RkOjpjaHJvbm86OmhpZ2hfcmVzb2x1dGlvbl9jbG9jazo6bm93KCk7CgogICAgc3RkOjpvc3RyaW5nc3RyZWFtIHNzOwoKICAgIGZvciAoYXV0byBpID0gMFVMTDsgaSA8IG47IGkrKykKICAgICAgICBzcyA8PCAiMTIzNDU2Nzg5MCI7CgogICAgYXV0byB4ID0gc3Muc3RyKCkubGVuZ3RoKCk7CgogICAgYXV0byB0MiA9IHN0ZDo6Y2hyb25vOjpoaWdoX3Jlc29sdXRpb25fY2xvY2s6Om5vdygpOwogICAgYXV0byB0ID0gc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzPih0MiAtIHQxKS5jb3VudCgpOwogICAgY291dCA8PCAiUmVzdWx0OiAiIDw8IHggPDwgIiAtLSB0aW1lIChtcyk6IiA8PCB0IC8gMC4xZTcgPDwgZW5kbDsKfQ==