Hi Codeforces. Today i saw [user:GreenGrape,2018-02-09] solution of the problem [D. Robot Vacuum Cleaner](http://codeforces.com/problemset/problem/922/D) : [submission: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: time : %.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: [submission:35088800]. ↵
Thank you for reading and I hope it will help you↵
↵
↵
~~~~~↵
#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
↵
~~~~~↵
↵
with this u can get execution time of parts of your programm. Example:↵
↵
~~~~~↵
int main () {↵
/*reading data*/↵
time__("dfs
/* 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: [submission:35088800]. ↵
Thank you for reading and I hope it will help you↵
↵