Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include "Header.h"
- #include <string>
- /*
- #include <algorithm> // std::next_permutation, std::sort
- #include <assert.h>
- #include <bitset>
- #include <cstdlib>
- #include <iostream>
- #include <map>
- #include <memory>
- #include <mutex>
- #include <set>
- #include <sstream>
- #include <stdint.h>
- #include <stdio.h>
- #include <string>
- #include <unordered_map>
- #include <unordered_set>
- #include <vector>
- */
- #include <stdint.h>
- typedef int64_t int64;
- typedef int32_t int32;
- typedef int16_t int16;
- typedef int8_t int8;
- typedef uint64_t uint64;
- typedef uint32_t uint32;
- typedef uint16_t uint16;
- typedef uint8_t uint8;
- #define UNORDERED_MAP std::unordered_map
- #ifdef WIN32
- #include <Windows.h>
- #else
- #include <sys/time.h>
- #include <ctime>
- #endif
- #undef max
- // Returns the amount of milliseconds elapsed since the UNIX epoch. Works on both
- // windows and linux.
- uint64 GetTimeMs64()
- {
- #ifdef _WIN32
- // Windows
- FILETIME ft;
- LARGE_INTEGER li;
- // Get the amount of 100 nano seconds intervals elapsed since January 1, 1601 (UTC) and copy it
- // to a LARGE_INTEGER structure.
- GetSystemTimeAsFileTime(&ft);
- li.LowPart = ft.dwLowDateTime;
- li.HighPart = ft.dwHighDateTime;
- uint64 ret = li.QuadPart;
- ret -= 116444736000000000LL; // Convert from file time to UNIX epoch time.
- ret /= 10000; // From 100 nano seconds (10^-7) to 1 millisecond (10^-3) intervals
- return ret;
- #else
- // Linux
- struct timeval tv;
- gettimeofday(&tv, NULL);
- uint64 ret = tv.tv_usec;
- // Convert from micro seconds (10^-6) to milliseconds (10^-3)
- ret /= 1000;
- // Adds the seconds (10^0) after converting them to milliseconds (10^-3)
- ret += (tv.tv_sec * 1000);
- return ret;
- #endif
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement