#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 = 1e5;
const int NUMITERS = 10000;
int A[MAXN];
int main() {
{
timeit x("fused");
for (int j = 1; j < NUMITERS; j++) {
for (int i = 0; i < MAXN; i++) {
A[i] += j;
A[i] *= j;
}
}
}
{
timeit x("unfused");
for (int j = 1; j < NUMITERS; j++) {
for (int i = 0; i < MAXN; i++)
A[i] += j;
for (int i = 0; i < MAXN; i++)
A[i] *= j;
}
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgdGltZWl0IHsKICAgIGRlY2x0eXBlKGNocm9ubzo6aGlnaF9yZXNvbHV0aW9uX2Nsb2NrOjpub3coKSkgYmVnaW47CiAgICBjb25zdCBzdHJpbmcgbGFiZWw7CiAgICB0aW1laXQoc3RyaW5nIGxhYmVsID0gIj8/PyIpIDogbGFiZWwobGFiZWwpIHsgYmVnaW4gPSBjaHJvbm86OmhpZ2hfcmVzb2x1dGlvbl9jbG9jazo6bm93KCk7IH0KICAgIH50aW1laXQoKSB7CiAgICAgICAgYXV0byBlbmQgPSBjaHJvbm86OmhpZ2hfcmVzb2x1dGlvbl9jbG9jazo6bm93KCk7CiAgICAgICAgYXV0byBkdXJhdGlvbiA9IGNocm9ubzo6ZHVyYXRpb25fY2FzdDxjaHJvbm86Om1pbGxpc2Vjb25kcz4oZW5kIC0gYmVnaW4pLmNvdW50KCk7CiAgICAgICAgY2VyciA8PCBkdXJhdGlvbiA8PCAibXMgZWxhcHNlZCBbIiA8PCBsYWJlbCA8PCAiXSIgPDwgZW5kbDsKICAgIH0KfTsKY29uc3QgaW50IE1BWE4gPSAxZTU7CmNvbnN0IGludCBOVU1JVEVSUyA9IDEwMDAwOwppbnQgQVtNQVhOXTsKaW50IG1haW4oKSB7CiAgICB7CiAgICAgICAgdGltZWl0IHgoImZ1c2VkIik7CiAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPCBOVU1JVEVSUzsgaisrKSB7CiAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTUFYTjsgaSsrKSB7CiAgICAgICAgICAgICAgICBBW2ldICs9IGo7CiAgICAgICAgICAgICAgICBBW2ldICo9IGo7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICB7CiAgICAgICAgdGltZWl0IHgoInVuZnVzZWQiKTsKICAgICAgICBmb3IgKGludCBqID0gMTsgaiA8IE5VTUlURVJTOyBqKyspIHsKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNQVhOOyBpKyspCiAgICAgICAgICAgICAgICBBW2ldICs9IGo7CiAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTUFYTjsgaSsrKQogICAgICAgICAgICAgICAgQVtpXSAqPSBqOwogICAgICAgIH0KICAgIH0KCn0K