• Source
    1. /*
    2. Phạm Hoàng Tiến - 20230071
    3. Em có sử dụng Mersenne Twister vì hàm rand() bình thường sẽ ra 1 chuỗi số cố định, nên không phù hợp
    4. Article:
    5. https://cplusplus.com/reference/random/mt19937/
    6. */
    7.  
    8. #include <bits/stdc++.h>
    9.  
    10. using namespace std;
    11.  
    12. mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());
    13.  
    14. int n;
    15.  
    16. int abs (int x)
    17. {
    18. if (x < 0) return -x;
    19. return x;
    20. }
    21.  
    22. //trả về số ngẫu nhiên trong khoảng từ l đến r
    23. int rng(int l, int r)
    24. {
    25. return l + abs((int)(rnd())) % (r - l + 1);
    26. }
    27.  
    28. int main()
    29. {
    30. //freopen("ktlt.txt", "w", stdout);
    31.  
    32. cin >> n;
    33. cout << n << "\n";
    34.  
    35. int pre = 100;
    36. int x, y, m, cur;
    37. while (n--)
    38. {
    39. m = rng(1, 10);
    40.  
    41. cur = rng(1, 100);
    42. cout << cur << "\n";
    43.  
    44. vector<int> vx, vy;
    45.  
    46. vx.push_back(rng(1, 100));
    47. vy.push_back(rng(1, pre - 1));
    48.  
    49. for (int i = 2; i <= m; i++)
    50. {
    51. vx.push_back(rng(1, 100));
    52. vy.push_back(rng(1, 100));
    53. }
    54.  
    55. sort(vy.begin(), vy.end());
    56.  
    57. if (vy[m - 1] == 1) vy[m - 1]++;
    58. pre = vy[m - 1];
    59.  
    60. for (int i = 0; i < m; i++) cout << vx[i] << " " << vy[i] << "\n";
    61.  
    62. }
    63. }