// $ gcc -std=c99 -Wall -Wextra -pedantic *.c && time ./a.out
#include <stdint.h> // uintmax_t
#include <stdio.h>
#include <stdlib.h> // system()
#include <time.h>
#include <unistd.h> // sleep()
static double double_clock() {
return clock() / (double) CLOCKS_PER_SEC
; }
int main(int argc, char* argv[]) {
double start = double_clock();
sleep(1);
printf("after sleep %.2g\n", double_clock
() - start
);
start = double_clock();
printf("after sleep %.2g\n", double_clock
() - start
);
start = double_clock();
int n
= (argc
== 2) ? atoi(argv
[argc
-1]) : 500000000; uintmax_t s = 0;
for (int i = 0; i < n; ++i)
s += i;
if (s != (uintmax_t)(n-1)*(n/2)) return 1;
printf("after loop %.2g\n", double_clock
() - start
);
return 0;
}
Ly8gJCBnY2MgLXN0ZD1jOTkgLVdhbGwgLVdleHRyYSAtcGVkYW50aWMgKi5jICYmIHRpbWUgLi9hLm91dAojaW5jbHVkZSA8c3RkaW50Lmg+IC8vIHVpbnRtYXhfdAojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPiAvLyBzeXN0ZW0oKQojaW5jbHVkZSA8dGltZS5oPgojaW5jbHVkZSA8dW5pc3RkLmg+IC8vIHNsZWVwKCkKCnN0YXRpYyBkb3VibGUgZG91YmxlX2Nsb2NrKCkgewogIHJldHVybiBjbG9jaygpIC8gKGRvdWJsZSkgQ0xPQ0tTX1BFUl9TRUM7Cn0KCmludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pIHsKICBkb3VibGUgc3RhcnQgPSBkb3VibGVfY2xvY2soKTsKICBzbGVlcCgxKTsKICBwcmludGYoImFmdGVyIHNsZWVwICUuMmdcbiIsIGRvdWJsZV9jbG9jaygpIC0gc3RhcnQpOwoKICBzdGFydCA9IGRvdWJsZV9jbG9jaygpOwogIHN5c3RlbSgic2xlZXAgMSIpOwogIHByaW50ZigiYWZ0ZXIgc2xlZXAgJS4yZ1xuIiwgZG91YmxlX2Nsb2NrKCkgLSBzdGFydCk7CgogIHN0YXJ0ID0gZG91YmxlX2Nsb2NrKCk7CiAgaW50IG4gPSAoYXJnYyA9PSAyKSA/IGF0b2koYXJndlthcmdjLTFdKSA6IDUwMDAwMDAwMDsKICB1aW50bWF4X3QgcyA9IDA7CiAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpCiAgICBzICs9IGk7CiAgaWYgKHMgIT0gKHVpbnRtYXhfdCkobi0xKSoobi8yKSkgcmV0dXJuIDE7CiAgcHJpbnRmKCJhZnRlciBsb29wICUuMmdcbiIsIGRvdWJsZV9jbG9jaygpIC0gc3RhcnQpOwoKICByZXR1cm4gMDsKfQ==