This documentation is automatically generated by competitive-verifier/competitive-verifier
#include "cp-algo/util/checkpoint.hpp"
#ifndef CP_ALGO_UTIL_CHECKPOINT_HPP
#define CP_ALGO_UTIL_CHECKPOINT_HPP
#include <iostream>
#include <chrono>
#include <string>
#include <map>
namespace cp_algo {
std::map<std::string, double> checkpoints;
template<bool final = false>
void checkpoint([[maybe_unused]] std::string const& msg = "") {
#ifdef CP_ALGO_CHECKPOINT
static double last = 0;
double now = (double)clock() / CLOCKS_PER_SEC;
double delta = now - last;
last = now;
if(msg.size() && !final) {
checkpoints[msg] += delta;
}
if(final) {
for(auto const& [key, value] : checkpoints) {
std::cerr << key << ": " << value * 1000 << " ms\n";
}
std::cerr << "Total: " << now * 1000 << " ms\n";
}
#endif
}
}
#endif // CP_ALGO_UTIL_CHECKPOINT_HPP
#line 1 "cp-algo/util/checkpoint.hpp"
#include <iostream>
#include <chrono>
#include <string>
#include <map>
namespace cp_algo {
std::map<std::string, double> checkpoints;
template<bool final = false>
void checkpoint([[maybe_unused]] std::string const& msg = "") {
#ifdef CP_ALGO_CHECKPOINT
static double last = 0;
double now = (double)clock() / CLOCKS_PER_SEC;
double delta = now - last;
last = now;
if(msg.size() && !final) {
checkpoints[msg] += delta;
}
if(final) {
for(auto const& [key, value] : checkpoints) {
std::cerr << key << ": " << value * 1000 << " ms\n";
}
std::cerr << "Total: " << now * 1000 << " ms\n";
}
#endif
}
}