fork(3) download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4.  
  5. int swapCount = 0;
  6.  
  7. class X
  8. {
  9. public:
  10. int x;
  11.  
  12. X( int val ): x( val ) {};
  13.  
  14. friend void swap( X &a, X &b )
  15. {
  16. using std::swap;
  17. swap( a.x, b.x );
  18. swapCount++;
  19. std::cout << "a.x = " << a.x << ", b.x = " << b.x << std::endl;
  20. }
  21. };
  22.  
  23. void f(int n) {
  24. std::vector<X> vec;
  25. for ( int i = 0; i < n; i++ )
  26. vec.push_back( X( i ) );
  27.  
  28. swapCount = 0;
  29. std::sort( vec.begin(), vec.end(),
  30. [] ( const X &a, const X &b ) -> bool { return (a.x) < (b.x); } );
  31. std::cout << n << ") " << "swapCount=" << swapCount << "\n";
  32. }
  33.  
  34. int main() {
  35. for(int n=1; n<100; ++n) f(n);
  36. return 0;
  37. }
Success #stdin #stdout 0s 15232KB
stdin
Standard input is empty
stdout
1) swapCount=0
2) swapCount=0
3) swapCount=0
4) swapCount=0
5) swapCount=0
6) swapCount=0
7) swapCount=0
8) swapCount=0
9) swapCount=0
10) swapCount=0
11) swapCount=0
12) swapCount=0
13) swapCount=0
14) swapCount=0
15) swapCount=0
16) swapCount=0
a.x = 8, b.x = 0
17) swapCount=1
a.x = 9, b.x = 0
18) swapCount=1
a.x = 9, b.x = 0
19) swapCount=1
a.x = 10, b.x = 0
20) swapCount=1
a.x = 10, b.x = 0
21) swapCount=1
a.x = 11, b.x = 0
22) swapCount=1
a.x = 11, b.x = 0
23) swapCount=1
a.x = 12, b.x = 0
24) swapCount=1
a.x = 12, b.x = 0
25) swapCount=1
a.x = 13, b.x = 0
26) swapCount=1
a.x = 13, b.x = 0
27) swapCount=1
a.x = 14, b.x = 0
28) swapCount=1
a.x = 14, b.x = 0
29) swapCount=1
a.x = 15, b.x = 0
30) swapCount=1
a.x = 15, b.x = 0
31) swapCount=1
a.x = 16, b.x = 0
a.x = 1, b.x = 16
a.x = 0, b.x = 16
32) swapCount=3
a.x = 16, b.x = 0
a.x = 1, b.x = 16
a.x = 0, b.x = 16
33) swapCount=3
a.x = 17, b.x = 0
a.x = 1, b.x = 17
a.x = 0, b.x = 17
34) swapCount=3
a.x = 17, b.x = 0
a.x = 26, b.x = 18
a.x = 1, b.x = 17
a.x = 0, b.x = 17
35) swapCount=4
a.x = 18, b.x = 0
a.x = 27, b.x = 19
a.x = 1, b.x = 18
a.x = 0, b.x = 18
a.x = 10, b.x = 2
36) swapCount=5
a.x = 18, b.x = 0
a.x = 28, b.x = 19
a.x = 1, b.x = 18
a.x = 0, b.x = 18
a.x = 10, b.x = 2
37) swapCount=5
a.x = 19, b.x = 0
a.x = 29, b.x = 20
a.x = 1, b.x = 19
a.x = 0, b.x = 19
a.x = 11, b.x = 2
38) swapCount=5
a.x = 19, b.x = 0
a.x = 29, b.x = 20
a.x = 1, b.x = 19
a.x = 0, b.x = 19
a.x = 11, b.x = 2
39) swapCount=5
a.x = 20, b.x = 0
a.x = 30, b.x = 21
a.x = 1, b.x = 20
a.x = 0, b.x = 20
a.x = 11, b.x = 2
40) swapCount=5
a.x = 20, b.x = 0
a.x = 31, b.x = 21
a.x = 1, b.x = 20
a.x = 0, b.x = 20
a.x = 11, b.x = 2
41) swapCount=5
a.x = 21, b.x = 0
a.x = 32, b.x = 22
a.x = 1, b.x = 21
a.x = 0, b.x = 21
a.x = 12, b.x = 2
42) swapCount=5
a.x = 21, b.x = 0
a.x = 32, b.x = 22
a.x = 1, b.x = 21
a.x = 0, b.x = 21
a.x = 12, b.x = 2
43) swapCount=5
a.x = 22, b.x = 0
a.x = 33, b.x = 23
a.x = 1, b.x = 22
a.x = 0, b.x = 22
a.x = 12, b.x = 2
44) swapCount=5
a.x = 22, b.x = 0
a.x = 34, b.x = 23
a.x = 1, b.x = 22
a.x = 0, b.x = 22
a.x = 12, b.x = 2
45) swapCount=5
a.x = 23, b.x = 0
a.x = 35, b.x = 24
a.x = 1, b.x = 23
a.x = 0, b.x = 23
a.x = 13, b.x = 2
46) swapCount=5
a.x = 23, b.x = 0
a.x = 35, b.x = 24
a.x = 1, b.x = 23
a.x = 0, b.x = 23
a.x = 13, b.x = 2
47) swapCount=5
a.x = 24, b.x = 0
a.x = 36, b.x = 25
a.x = 1, b.x = 24
a.x = 0, b.x = 24
a.x = 13, b.x = 2
48) swapCount=5
a.x = 24, b.x = 0
a.x = 37, b.x = 25
a.x = 1, b.x = 24
a.x = 0, b.x = 24
a.x = 13, b.x = 2
49) swapCount=5
a.x = 25, b.x = 0
a.x = 38, b.x = 26
a.x = 1, b.x = 25
a.x = 0, b.x = 25
a.x = 14, b.x = 2
50) swapCount=5
a.x = 25, b.x = 0
a.x = 38, b.x = 26
a.x = 1, b.x = 25
a.x = 0, b.x = 25
a.x = 14, b.x = 2
51) swapCount=5
a.x = 26, b.x = 0
a.x = 39, b.x = 27
a.x = 1, b.x = 26
a.x = 0, b.x = 26
a.x = 14, b.x = 2
52) swapCount=5
a.x = 26, b.x = 0
a.x = 40, b.x = 27
a.x = 1, b.x = 26
a.x = 0, b.x = 26
a.x = 14, b.x = 2
53) swapCount=5
a.x = 27, b.x = 0
a.x = 41, b.x = 28
a.x = 1, b.x = 27
a.x = 0, b.x = 27
a.x = 15, b.x = 2
54) swapCount=5
a.x = 27, b.x = 0
a.x = 41, b.x = 28
a.x = 1, b.x = 27
a.x = 0, b.x = 27
a.x = 15, b.x = 2
55) swapCount=5
a.x = 28, b.x = 0
a.x = 42, b.x = 29
a.x = 1, b.x = 28
a.x = 0, b.x = 28
a.x = 15, b.x = 2
56) swapCount=5
a.x = 28, b.x = 0
a.x = 43, b.x = 29
a.x = 1, b.x = 28
a.x = 0, b.x = 28
a.x = 15, b.x = 2
57) swapCount=5
a.x = 29, b.x = 0
a.x = 44, b.x = 30
a.x = 1, b.x = 29
a.x = 0, b.x = 29
a.x = 16, b.x = 2
58) swapCount=5
a.x = 29, b.x = 0
a.x = 44, b.x = 30
a.x = 1, b.x = 29
a.x = 0, b.x = 29
a.x = 16, b.x = 2
59) swapCount=5
a.x = 30, b.x = 0
a.x = 45, b.x = 31
a.x = 1, b.x = 30
a.x = 0, b.x = 30
a.x = 16, b.x = 2
60) swapCount=5
a.x = 30, b.x = 0
a.x = 46, b.x = 31
a.x = 1, b.x = 30
a.x = 0, b.x = 30
a.x = 16, b.x = 2
61) swapCount=5
a.x = 31, b.x = 0
a.x = 47, b.x = 32
a.x = 1, b.x = 31
a.x = 0, b.x = 31
a.x = 17, b.x = 2
62) swapCount=5
a.x = 31, b.x = 0
a.x = 47, b.x = 32
a.x = 1, b.x = 31
a.x = 0, b.x = 31
a.x = 17, b.x = 2
63) swapCount=5
a.x = 32, b.x = 0
a.x = 48, b.x = 33
a.x = 1, b.x = 32
a.x = 0, b.x = 32
a.x = 17, b.x = 2
64) swapCount=5
a.x = 32, b.x = 0
a.x = 49, b.x = 33
a.x = 34, b.x = 49
a.x = 33, b.x = 49
a.x = 1, b.x = 32
a.x = 0, b.x = 32
a.x = 17, b.x = 2
65) swapCount=7
a.x = 33, b.x = 0
a.x = 50, b.x = 34
a.x = 35, b.x = 50
a.x = 34, b.x = 50
a.x = 1, b.x = 33
a.x = 0, b.x = 33
a.x = 18, b.x = 2
a.x = 3, b.x = 18
a.x = 2, b.x = 18
66) swapCount=9
a.x = 33, b.x = 0
a.x = 50, b.x = 34
a.x = 35, b.x = 50
a.x = 34, b.x = 50
a.x = 1, b.x = 33
a.x = 0, b.x = 33
a.x = 18, b.x = 2
a.x = 3, b.x = 18
a.x = 2, b.x = 18
67) swapCount=9
a.x = 34, b.x = 0
a.x = 51, b.x = 35
a.x = 36, b.x = 51
a.x = 35, b.x = 51
a.x = 1, b.x = 34
a.x = 0, b.x = 34
a.x = 18, b.x = 2
a.x = 3, b.x = 18
a.x = 2, b.x = 18
68) swapCount=9
a.x = 34, b.x = 0
a.x = 52, b.x = 35
a.x = 36, b.x = 52
a.x = 35, b.x = 52
a.x = 1, b.x = 34
a.x = 0, b.x = 34
a.x = 18, b.x = 2
a.x = 3, b.x = 18
a.x = 2, b.x = 18
69) swapCount=9
a.x = 35, b.x = 0
a.x = 53, b.x = 36
a.x = 37, b.x = 53
a.x = 36, b.x = 53
a.x = 1, b.x = 35
a.x = 0, b.x = 35
a.x = 19, b.x = 2
a.x = 3, b.x = 19
a.x = 2, b.x = 19
70) swapCount=9
a.x = 35, b.x = 0
a.x = 53, b.x = 36
a.x = 62, b.x = 54
a.x = 37, b.x = 53
a.x = 36, b.x = 53
a.x = 1, b.x = 35
a.x = 0, b.x = 35
a.x = 19, b.x = 2
a.x = 3, b.x = 19
a.x = 2, b.x = 19
71) swapCount=10
a.x = 36, b.x = 0
a.x = 54, b.x = 37
a.x = 63, b.x = 55
a.x = 38, b.x = 54
a.x = 37, b.x = 54
a.x = 1, b.x = 36
a.x = 0, b.x = 36
a.x = 19, b.x = 2
a.x = 28, b.x = 20
a.x = 3, b.x = 19
a.x = 2, b.x = 19
72) swapCount=11
a.x = 36, b.x = 0
a.x = 55, b.x = 37
a.x = 64, b.x = 56
a.x = 38, b.x = 55
a.x = 37, b.x = 55
a.x = 47, b.x = 39
a.x = 1, b.x = 36
a.x = 0, b.x = 36
a.x = 19, b.x = 2
a.x = 28, b.x = 20
a.x = 3, b.x = 19
a.x = 2, b.x = 19
73) swapCount=12
a.x = 37, b.x = 0
a.x = 56, b.x = 38
a.x = 65, b.x = 57
a.x = 39, b.x = 56
a.x = 38, b.x = 56
a.x = 48, b.x = 40
a.x = 1, b.x = 37
a.x = 0, b.x = 37
a.x = 20, b.x = 2
a.x = 29, b.x = 21
a.x = 3, b.x = 20
a.x = 2, b.x = 20
a.x = 12, b.x = 4
74) swapCount=13
a.x = 37, b.x = 0
a.x = 56, b.x = 38
a.x = 66, b.x = 57
a.x = 39, b.x = 56
a.x = 38, b.x = 56
a.x = 48, b.x = 40
a.x = 1, b.x = 37
a.x = 0, b.x = 37
a.x = 20, b.x = 2
a.x = 29, b.x = 21
a.x = 3, b.x = 20
a.x = 2, b.x = 20
a.x = 12, b.x = 4
75) swapCount=13
a.x = 38, b.x = 0
a.x = 57, b.x = 39
a.x = 67, b.x = 58
a.x = 40, b.x = 57
a.x = 39, b.x = 57
a.x = 49, b.x = 41
a.x = 1, b.x = 38
a.x = 0, b.x = 38
a.x = 20, b.x = 2
a.x = 30, b.x = 21
a.x = 3, b.x = 20
a.x = 2, b.x = 20
a.x = 12, b.x = 4
76) swapCount=13
a.x = 38, b.x = 0
a.x = 58, b.x = 39
a.x = 68, b.x = 59
a.x = 40, b.x = 58
a.x = 39, b.x = 58
a.x = 50, b.x = 41
a.x = 1, b.x = 38
a.x = 0, b.x = 38
a.x = 20, b.x = 2
a.x = 30, b.x = 21
a.x = 3, b.x = 20
a.x = 2, b.x = 20
a.x = 12, b.x = 4
77) swapCount=13
a.x = 39, b.x = 0
a.x = 59, b.x = 40
a.x = 69, b.x = 60
a.x = 41, b.x = 59
a.x = 40, b.x = 59
a.x = 51, b.x = 42
a.x = 1, b.x = 39
a.x = 0, b.x = 39
a.x = 21, b.x = 2
a.x = 31, b.x = 22
a.x = 3, b.x = 21
a.x = 2, b.x = 21
a.x = 13, b.x = 4
78) swapCount=13
a.x = 39, b.x = 0
a.x = 59, b.x = 40
a.x = 69, b.x = 60
a.x = 41, b.x = 59
a.x = 40, b.x = 59
a.x = 51, b.x = 42
a.x = 1, b.x = 39
a.x = 0, b.x = 39
a.x = 21, b.x = 2
a.x = 31, b.x = 22
a.x = 3, b.x = 21
a.x = 2, b.x = 21
a.x = 13, b.x = 4
79) swapCount=13
a.x = 40, b.x = 0
a.x = 60, b.x = 41
a.x = 70, b.x = 61
a.x = 42, b.x = 60
a.x = 41, b.x = 60
a.x = 52, b.x = 43
a.x = 1, b.x = 40
a.x = 0, b.x = 40
a.x = 21, b.x = 2
a.x = 31, b.x = 22
a.x = 3, b.x = 21
a.x = 2, b.x = 21
a.x = 13, b.x = 4
80) swapCount=13
a.x = 40, b.x = 0
a.x = 61, b.x = 41
a.x = 71, b.x = 62
a.x = 42, b.x = 61
a.x = 41, b.x = 61
a.x = 52, b.x = 43
a.x = 1, b.x = 40
a.x = 0, b.x = 40
a.x = 21, b.x = 2
a.x = 31, b.x = 22
a.x = 3, b.x = 21
a.x = 2, b.x = 21
a.x = 13, b.x = 4
81) swapCount=13
a.x = 41, b.x = 0
a.x = 62, b.x = 42
a.x = 72, b.x = 63
a.x = 43, b.x = 62
a.x = 42, b.x = 62
a.x = 53, b.x = 44
a.x = 1, b.x = 41
a.x = 0, b.x = 41
a.x = 22, b.x = 2
a.x = 32, b.x = 23
a.x = 3, b.x = 22
a.x = 2, b.x = 22
a.x = 13, b.x = 4
82) swapCount=13
a.x = 41, b.x = 0
a.x = 62, b.x = 42
a.x = 73, b.x = 63
a.x = 43, b.x = 62
a.x = 42, b.x = 62
a.x = 53, b.x = 44
a.x = 1, b.x = 41
a.x = 0, b.x = 41
a.x = 22, b.x = 2
a.x = 32, b.x = 23
a.x = 3, b.x = 22
a.x = 2, b.x = 22
a.x = 13, b.x = 4
83) swapCount=13
a.x = 42, b.x = 0
a.x = 63, b.x = 43
a.x = 74, b.x = 64
a.x = 44, b.x = 63
a.x = 43, b.x = 63
a.x = 54, b.x = 45
a.x = 1, b.x = 42
a.x = 0, b.x = 42
a.x = 22, b.x = 2
a.x = 33, b.x = 23
a.x = 3, b.x = 22
a.x = 2, b.x = 22
a.x = 13, b.x = 4
84) swapCount=13
a.x = 42, b.x = 0
a.x = 64, b.x = 43
a.x = 75, b.x = 65
a.x = 44, b.x = 64
a.x = 43, b.x = 64
a.x = 55, b.x = 45
a.x = 1, b.x = 42
a.x = 0, b.x = 42
a.x = 22, b.x = 2
a.x = 33, b.x = 23
a.x = 3, b.x = 22
a.x = 2, b.x = 22
a.x = 13, b.x = 4
85) swapCount=13
a.x = 43, b.x = 0
a.x = 65, b.x = 44
a.x = 76, b.x = 66
a.x = 45, b.x = 65
a.x = 44, b.x = 65
a.x = 56, b.x = 46
a.x = 1, b.x = 43
a.x = 0, b.x = 43
a.x = 23, b.x = 2
a.x = 34, b.x = 24
a.x = 3, b.x = 23
a.x = 2, b.x = 23
a.x = 14, b.x = 4
86) swapCount=13
a.x = 43, b.x = 0
a.x = 65, b.x = 44
a.x = 76, b.x = 66
a.x = 45, b.x = 65
a.x = 44, b.x = 65
a.x = 56, b.x = 46
a.x = 1, b.x = 43
a.x = 0, b.x = 43
a.x = 23, b.x = 2
a.x = 34, b.x = 24
a.x = 3, b.x = 23
a.x = 2, b.x = 23
a.x = 14, b.x = 4
87) swapCount=13
a.x = 44, b.x = 0
a.x = 66, b.x = 45
a.x = 77, b.x = 67
a.x = 46, b.x = 66
a.x = 45, b.x = 66
a.x = 57, b.x = 47
a.x = 1, b.x = 44
a.x = 0, b.x = 44
a.x = 23, b.x = 2
a.x = 34, b.x = 24
a.x = 3, b.x = 23
a.x = 2, b.x = 23
a.x = 14, b.x = 4
88) swapCount=13
a.x = 44, b.x = 0
a.x = 67, b.x = 45
a.x = 78, b.x = 68
a.x = 46, b.x = 67
a.x = 45, b.x = 67
a.x = 57, b.x = 47
a.x = 1, b.x = 44
a.x = 0, b.x = 44
a.x = 23, b.x = 2
a.x = 34, b.x = 24
a.x = 3, b.x = 23
a.x = 2, b.x = 23
a.x = 14, b.x = 4
89) swapCount=13
a.x = 45, b.x = 0
a.x = 68, b.x = 46
a.x = 79, b.x = 69
a.x = 47, b.x = 68
a.x = 46, b.x = 68
a.x = 58, b.x = 48
a.x = 1, b.x = 45
a.x = 0, b.x = 45
a.x = 24, b.x = 2
a.x = 35, b.x = 25
a.x = 3, b.x = 24
a.x = 2, b.x = 24
a.x = 14, b.x = 4
90) swapCount=13
a.x = 45, b.x = 0
a.x = 68, b.x = 46
a.x = 80, b.x = 69
a.x = 47, b.x = 68
a.x = 46, b.x = 68
a.x = 58, b.x = 48
a.x = 1, b.x = 45
a.x = 0, b.x = 45
a.x = 24, b.x = 2
a.x = 35, b.x = 25
a.x = 3, b.x = 24
a.x = 2, b.x = 24
a.x = 14, b.x = 4
91) swapCount=13
a.x = 46, b.x = 0
a.x = 69, b.x = 47
a.x = 81, b.x = 70
a.x = 48, b.x = 69
a.x = 47, b.x = 69
a.x = 59, b.x = 49
a.x = 1, b.x = 46
a.x = 0, b.x = 46
a.x = 24, b.x = 2
a.x = 36, b.x = 25
a.x = 3, b.x = 24
a.x = 2, b.x = 24
a.x = 14, b.x = 4
92) swapCount=13
a.x = 46, b.x = 0
a.x = 70, b.x = 47
a.x = 82, b.x = 71
a.x = 48, b.x = 70
a.x = 47, b.x = 70
a.x = 60, b.x = 49
a.x = 1, b.x = 46
a.x = 0, b.x = 46
a.x = 24, b.x = 2
a.x = 36, b.x = 25
a.x = 3, b.x = 24
a.x = 2, b.x = 24
a.x = 14, b.x = 4
93) swapCount=13
a.x = 47, b.x = 0
a.x = 71, b.x = 48
a.x = 83, b.x = 72
a.x = 49, b.x = 71
a.x = 48, b.x = 71
a.x = 61, b.x = 50
a.x = 1, b.x = 47
a.x = 0, b.x = 47
a.x = 25, b.x = 2
a.x = 37, b.x = 26
a.x = 3, b.x = 25
a.x = 2, b.x = 25
a.x = 15, b.x = 4
94) swapCount=13
a.x = 47, b.x = 0
a.x = 71, b.x = 48
a.x = 83, b.x = 72
a.x = 49, b.x = 71
a.x = 48, b.x = 71
a.x = 61, b.x = 50
a.x = 1, b.x = 47
a.x = 0, b.x = 47
a.x = 25, b.x = 2
a.x = 37, b.x = 26
a.x = 3, b.x = 25
a.x = 2, b.x = 25
a.x = 15, b.x = 4
95) swapCount=13
a.x = 48, b.x = 0
a.x = 72, b.x = 49
a.x = 84, b.x = 73
a.x = 50, b.x = 72
a.x = 49, b.x = 72
a.x = 62, b.x = 51
a.x = 1, b.x = 48
a.x = 0, b.x = 48
a.x = 25, b.x = 2
a.x = 37, b.x = 26
a.x = 3, b.x = 25
a.x = 2, b.x = 25
a.x = 15, b.x = 4
96) swapCount=13
a.x = 48, b.x = 0
a.x = 73, b.x = 49
a.x = 85, b.x = 74
a.x = 50, b.x = 73
a.x = 49, b.x = 73
a.x = 62, b.x = 51
a.x = 1, b.x = 48
a.x = 0, b.x = 48
a.x = 25, b.x = 2
a.x = 37, b.x = 26
a.x = 3, b.x = 25
a.x = 2, b.x = 25
a.x = 15, b.x = 4
97) swapCount=13
a.x = 49, b.x = 0
a.x = 74, b.x = 50
a.x = 86, b.x = 75
a.x = 51, b.x = 74
a.x = 50, b.x = 74
a.x = 63, b.x = 52
a.x = 1, b.x = 49
a.x = 0, b.x = 49
a.x = 26, b.x = 2
a.x = 38, b.x = 27
a.x = 3, b.x = 26
a.x = 2, b.x = 26
a.x = 15, b.x = 4
98) swapCount=13
a.x = 49, b.x = 0
a.x = 74, b.x = 50
a.x = 87, b.x = 75
a.x = 51, b.x = 74
a.x = 50, b.x = 74
a.x = 63, b.x = 52
a.x = 1, b.x = 49
a.x = 0, b.x = 49
a.x = 26, b.x = 2
a.x = 38, b.x = 27
a.x = 3, b.x = 26
a.x = 2, b.x = 26
a.x = 15, b.x = 4
99) swapCount=13