fork(2) download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. struct timeit {
  5. decltype(chrono::high_resolution_clock::now()) begin;
  6. const string label;
  7. timeit(string label = "???") : label(label) { begin = chrono::high_resolution_clock::now(); }
  8. ~timeit() {
  9. auto end = chrono::high_resolution_clock::now();
  10. auto duration = chrono::duration_cast<chrono::milliseconds>(end - begin).count();
  11. cerr << duration << "ms elapsed [" << label << "]" << endl;
  12. }
  13. };
  14. const int iters = 1e1;
  15.  
  16. const int DIM1 = 100000;
  17. const int DIM2 = 100;
  18. int A[DIM1][DIM2];
  19. signed main() {
  20. for (int i = 0; i < DIM1; i++) {
  21. for (int j = 0; j < DIM2; j++) {
  22. A[i][j] = rand() % 100;
  23. }
  24. }
  25. {
  26. timeit x("correct order");
  27. for (int iter = 0; iter < iters; iter++)
  28. for (int i = 0; i < DIM1; i++)
  29. for (int j = 0; j < DIM2; j++)
  30. A[i][j]++;
  31.  
  32. }
  33. {
  34. timeit x("incorrect order");
  35. int overall = 0;
  36. for (int iter = 0; iter < iters; iter++) {
  37. for (int j = 0; j < DIM2; j ++)
  38. for (int i = 0; i < DIM1; i++)
  39. A[i][j]++;
  40. }
  41. }
  42. }
Success #stdin #stdout #stderr 0.9s 42648KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
60ms elapsed [correct order]
740ms elapsed [incorrect order]