#pragma GCC optimize("O2")
#include <bits/stdc++.h>
using namespace std;
struct timeit {
decltype(chrono::high_resolution_clock::now()) begin;
const string label;
timeit(string label = "???") : label(label) { begin = chrono::high_resolution_clock::now(); }
~timeit() {
auto end = chrono::high_resolution_clock::now();
auto duration = chrono::duration_cast<chrono::milliseconds>(end - begin).count();
cerr << duration << "ms elapsed [" << label << "]" << endl;
}
};
const int MAXN = 1e6 + 5;
const int ITERS = 100;
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
vector<int> vc(MAXN);
{
timeit t("vector char memset");
for (int t = 0; t < ITERS; t++)
fill(vc.begin(), vc.end(),0);
}
{
timeit t("vector char loop");
for (int t = 0; t < ITERS; t++)
for (auto &i : vc)
i = 0;
}
}
I3ByYWdtYSBHQ0Mgb3B0aW1pemUoIk8yIikKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IHRpbWVpdCB7CiAgICBkZWNsdHlwZShjaHJvbm86OmhpZ2hfcmVzb2x1dGlvbl9jbG9jazo6bm93KCkpIGJlZ2luOwogICAgY29uc3Qgc3RyaW5nIGxhYmVsOwogICAgdGltZWl0KHN0cmluZyBsYWJlbCA9ICI/Pz8iKSA6IGxhYmVsKGxhYmVsKSB7IGJlZ2luID0gY2hyb25vOjpoaWdoX3Jlc29sdXRpb25fY2xvY2s6Om5vdygpOyB9CiAgICB+dGltZWl0KCkgewogICAgICAgIGF1dG8gZW5kID0gY2hyb25vOjpoaWdoX3Jlc29sdXRpb25fY2xvY2s6Om5vdygpOwogICAgICAgIGF1dG8gZHVyYXRpb24gPSBjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8Y2hyb25vOjptaWxsaXNlY29uZHM+KGVuZCAtIGJlZ2luKS5jb3VudCgpOwogICAgICAgIGNlcnIgPDwgZHVyYXRpb24gPDwgIm1zIGVsYXBzZWQgWyIgPDwgbGFiZWwgPDwgIl0iIDw8IGVuZGw7CiAgICB9Cn07CmNvbnN0IGludCBNQVhOID0gMWU2ICsgNTsKY29uc3QgaW50IElURVJTID0gMTAwOwpzaWduZWQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIHZlY3RvcjxpbnQ+IHZjKE1BWE4pOwogICAgewogICAgICAgIHRpbWVpdCB0KCJ2ZWN0b3IgY2hhciBtZW1zZXQiKTsKICAgICAgICBmb3IgKGludCB0ID0gMDsgdCA8IElURVJTOyB0KyspCiAgICAgICAgCWZpbGwodmMuYmVnaW4oKSwgdmMuZW5kKCksMCk7CiAgICB9CiAgICB7CiAgICAgICAgdGltZWl0IHQoInZlY3RvciBjaGFyIGxvb3AiKTsKICAgICAgICBmb3IgKGludCB0ID0gMDsgdCA8IElURVJTOyB0KyspCiAgICAgICAgICAgIGZvciAoYXV0byAmaSA6IHZjKQogICAgICAgICAgICAgICAgaSA9IDA7CiAgICB9Cn0=