#include <cstdio>
#include <ctime>
#include <vector>
// #define at operator[]
 
int main(int argc, char **argv)
{
        size_t const n = 1 << 16;
        std::vector<size_t> v(n, 1);
        clock_t begin = clock();
        for (int j = 0; j < 1 << 12; ++j)
        {
                for (size_t i = 8; i < n; ++i)
                {
                        v.at(i) += v.at(i - 8);
                        v.at(i) ^= v.at(i - 7);
                        v.at(i) -= v.at(i - 6);
                        v.at(i) ^= v.at(i - 5);
                        v.at(i) += v.at(i - 4);
                        v.at(i) ^= v.at(i - 3);
                        v.at(i) -= v.at(i - 2);
                        v.at(i) ^= v.at(i - 1);
                }
        }
        fprintf(stderr, "%u\n", clock() - begin);
        return 0;
}
