Hi Codeforces. Today i saw GreenGrape solution of the problem D. Robot Vacuum Cleaner : 35053688. And i find there :
#define debug(...) fprintf(stderr, __VA_ARGS__), fflush(stderr)
while (t--) {
clock_t z = clock();
solve();
debug("Total Time: %.3f\n", (double)(clock() - z) / CLOCKS_PER_SEC);
}
With this code he gets execution time of function solve()
. clock()
gives you current time. It is useful to avoid time limits. I have wrote helpful macro and decided to share with you :
#define debug(...) fprintf(stderr, __VA_ARGS__), fflush(stderr)
#define time__(d) for(long blockTime = 0; (blockTime == 0 ? (blockTime=clock()) != 0 : false); debug("%s:%.4fs", d, (double)(clock() - blockTime) / CLOCKS_PER_SEC))
with this u can get execution time of parts of your programm. Example:
int main () {
/*reading data*/
time__("dfs time"){
/* dfs code */
}
/*some code*/
time__("solve"){
solve();
}
}
And programm will print something like dfs time : 0.2650s
, solve time:0.0010s
. You don't need to erase debugging part when you will submit it. Example submission: 35088800. Thank you for reading and I hope it will help you