fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define FasterIO ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)
  4.  
  5. typedef unsigned long long ull;
  6. typedef long long ll;
  7. typedef double db;
  8.  
  9. #define mem(a,x) memset(a,x,sizeof(a))
  10. #define pb push_back
  11. #define ff first
  12. #define ss second
  13. #define mk make_pair
  14. #define pi pair<int,int>
  15. #define vi vector<int>
  16. #define pL pair<ll,ll>
  17. #define vL vector<ll>
  18. #define vp vector<pi>
  19. #define vpL vector<pL>
  20.  
  21. const int MX=1000;
  22. const ll inf=1e18;
  23. const ll mod=1e9+7;
  24.  
  25.  
  26. int a[MX][MX];
  27.  
  28. void construct(int n, int m)
  29. {
  30. for(int i=0; i<=m; i++) a[0][i]=i;
  31.  
  32. int mex=m;
  33. for(int i=1; i<n; i++)
  34. {
  35. a[i][0]=a[i-1][m];
  36. for(int j=1; j<=m; j++) a[i][j]=a[i-1][j-1];
  37. mex--;
  38. }
  39.  
  40. if(mex>n+1)
  41. {
  42. mex=n+1;
  43. for(int i=n-1; i>=0; i--)
  44. {
  45. for(int j=0; j<m; j++)
  46. {
  47. if(a[i][j]==mex) a[i][j]=mex+1;
  48. }
  49. mex++;
  50. }
  51. }
  52.  
  53. }
  54.  
  55. int main()
  56. {
  57.  
  58. FasterIO;
  59.  
  60. for(int i=2; i<=100; i++)
  61. {
  62. for(int j=2; j<=100; j++)
  63. {
  64.  
  65. int n, m;
  66.  
  67. n=i, m=j;
  68.  
  69. vector<int>st;
  70.  
  71. if(n<=m)
  72. {
  73. construct(n, m);
  74. if(n==m) a[n-1][m-1]=1;
  75.  
  76.  
  77. for(int i=0; i<n; i++)
  78. {
  79. vector<int>v(m);
  80. for(int j=0; j<m; j++) v[j]=a[i][j];
  81.  
  82. sort(v.begin(), v.end());
  83.  
  84. int mx=0;
  85. for(int j=0; j<m; j++)
  86. {
  87. if(v[j]==mx) mx++;
  88. else if(v[j]>mx) break;
  89. }
  90. st.push_back(mx);
  91. }
  92.  
  93. for(int i=0; i<m; i++)
  94. {
  95. vector<int>v(n);
  96. for(int j=0; j<n; j++) v[j]=a[j][i];
  97.  
  98. sort(v.begin(), v.end());
  99.  
  100. int mx=0;
  101. for(int j=0; j<n; j++)
  102. {
  103. if(v[j]==mx) mx++;
  104. else if(v[j]>mx) break;
  105. }
  106. st.push_back(mx);
  107. }
  108.  
  109. }
  110. else
  111. {
  112. construct(m, n);
  113. for(int i=0; i<n; i++)
  114. {
  115. vector<int>v(m);
  116. for(int j=0; j<m; j++) v[j]=a[j][i];
  117.  
  118. sort(v.begin(), v.end());
  119.  
  120. int mx=0;
  121. for(int j=0; j<m; j++)
  122. {
  123. if(v[j]==mx) mx++;
  124. else if(v[j]>mx) break;
  125. }
  126.  
  127. st.push_back(mx);
  128. }
  129.  
  130. for(int i=0; i<m; i++)
  131. {
  132. vector<int>v(n);
  133. for(int j=0; j<n; j++) v[j]=a[i][j];
  134.  
  135. sort(v.begin(), v.end());
  136.  
  137. int mx=0;
  138. for(int j=0; j<n; j++)
  139. {
  140. if(v[j]==mx) mx++;
  141. else if(v[j]>mx) break;
  142. }
  143.  
  144. st.push_back(mx);
  145. }
  146.  
  147. }
  148.  
  149. sort(st.begin(), st.end());
  150. int mex=0;
  151.  
  152. for(int i=0; i<st.size(); i++)
  153. {
  154. if(mex==st[i]) mex++;
  155. else if(mex<st[i]) break;
  156. }
  157.  
  158. if(n<=m)
  159. {
  160. if(min(n*2, m)+1!=mex) cout<<n<<' '<<m<<' '<<mex<<endl;
  161. }
  162. else
  163. {
  164. if(min(n, m*2)+1!=mex) cout<<n<<' '<<m<<' '<<mex<<endl;
  165. }
  166. }
  167. }
  168. return 0;
  169. }
  170.  
Success #stdin #stdout 0.7s 4480KB
stdin
Standard input is empty
stdout
Standard output is empty