#include <iostream>
#include <chrono>
#include <ratio>
using namespace std::chrono;
const nanoseconds timePerFrame = duration_cast<nanoseconds>(duration<steady_clock::rep, std::ratio<1, 60>>(1));
nanoseconds accumulator(0);
nanoseconds counter(0);
steady_clock::time_point begin;
int i = 0;
int main()
{
while(true)
{
begin = steady_clock::now();
while(accumulator >= timePerFrame)
{
accumulator -= timePerFrame;
++i;
}
counter += steady_clock::now() - begin;
accumulator += steady_clock::now() - begin;
if(counter >= seconds(1))
{
std::cout << i << std::endl;
break;
}
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y2hyb25vPgojaW5jbHVkZSA8cmF0aW8+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOjpjaHJvbm87Cgpjb25zdCBuYW5vc2Vjb25kcyB0aW1lUGVyRnJhbWUgPSBkdXJhdGlvbl9jYXN0PG5hbm9zZWNvbmRzPihkdXJhdGlvbjxzdGVhZHlfY2xvY2s6OnJlcCwgc3RkOjpyYXRpbzwxLCA2MD4+KDEpKTsKbmFub3NlY29uZHMgYWNjdW11bGF0b3IoMCk7Cm5hbm9zZWNvbmRzIGNvdW50ZXIoMCk7CnN0ZWFkeV9jbG9jazo6dGltZV9wb2ludCBiZWdpbjsKaW50IGkgPSAwOwoKaW50IG1haW4oKQp7CiAgIHdoaWxlKHRydWUpCiAgIHsKICAgICAgYmVnaW4gPSBzdGVhZHlfY2xvY2s6Om5vdygpOwogICAgICB3aGlsZShhY2N1bXVsYXRvciA+PSB0aW1lUGVyRnJhbWUpCiAgICAgIHsKICAgICAgICAgIGFjY3VtdWxhdG9yIC09IHRpbWVQZXJGcmFtZTsKICAgICAgICAgICsraTsKICAgICAgfQogICAgICBjb3VudGVyICs9IHN0ZWFkeV9jbG9jazo6bm93KCkgLSBiZWdpbjsKICAgICAgYWNjdW11bGF0b3IgKz0gc3RlYWR5X2Nsb2NrOjpub3coKSAtIGJlZ2luOwogICAgICAKICAgICAgaWYoY291bnRlciA+PSBzZWNvbmRzKDEpKQogICAgICB7CiAgICAgICAgc3RkOjpjb3V0IDw8IGkgPDwgc3RkOjplbmRsOwogICAgICAgIGJyZWFrOwogICAgICB9CiAgfQp9