Advertisement
a53

tablou1

a53
Dec 24th, 2021
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. #include <fstream>
  2. using namespace std;
  3. ifstream fin("tablou.in");
  4. ofstream fout("tablou.out");
  5. int a[105][105];
  6.  
  7. int main()
  8. {
  9. int n, S, k, s, i, j, x;
  10. fin >> n >> S;
  11. if (1LL * n * n * (n + 1) / 2 > S)
  12. {
  13. fout << "0\n";
  14. fout.close();
  15. return 0;
  16. }
  17. s = S / n;
  18. for (k = 1; 1LL * k * n + 1LL * n * (n - 1) / 2 <= s; k++)
  19. ;
  20. k--;
  21. /// prima linie:
  22. x = 0;
  23. for (i = 1; i <= n; i++)
  24. {
  25. a[1][i] = k + i - 1;
  26. x += a[1][i];
  27. }
  28. /// restul liniilor:
  29. for (i = 2; i <= n; i++)
  30. {
  31. for (j = 1; j < n; j++)
  32. a[i][j] = a[i - 1][j + 1];
  33. a[i][n] = a[i - 1][1];
  34. }
  35. S -= n * x;
  36. x = S / n;
  37. S %= n;
  38. k = a[1][n] - x + 1;
  39. for (i = 1; i <= n; i++)
  40. for (j = 1; j <= n; j++)
  41. if (a[i][j] >= k) a[i][j]++;
  42. else if (a[i][j] == k - 1 && S > 0)
  43. {
  44. a[i][j]++;
  45. S--;
  46. }
  47.  
  48. for (i = 1; i <= n; i++)
  49. {
  50. for (j = 1; j <= n; j++)
  51. fout << a[i][j] << " ";
  52. fout << "\n";
  53. }
  54. fin.close();
  55. fout.close();
  56. return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement