Advertisement
Guest User

Untitled

a guest
Mar 14th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.15 KB | None | 0 0
  1. #include <fstream>
  2.  
  3. using namespace std;
  4.  
  5. ifstream fin("betasah.in");
  6. ofstream fout("betasah.out");
  7.  
  8. int n, d, k, i, j, l, mat[101][101], pozDame[50], pozGri[50], nrPatratePeLinie, nrmaxPatrate, nrPozitii;
  9.  
  10. int main() {
  11. fin >> n >> d >> k;
  12.  
  13. for (i = 1; i <= d * 2; i++) fin >> pozDame[i];
  14. for (i = 1; i <= k * 2; i++) fin >> pozGri[i];
  15. //bordarea ***********************************************
  16. for (i = 1; i <= n; i++)
  17. for (j = 1; j <= n; j++)
  18. if (i == j)
  19. for (l = j + 1; l <= n; l++)
  20. mat[i][l] = 1;
  21. //generarea matricei *************************************
  22. for (i = 1; i <= n; i++)
  23. for (j = 1; j <= n; j++) {
  24. for (l = 1; l <= d * 2; l += 2)
  25. if (i == pozDame[l] && j == pozDame[l + 1])
  26. mat[i][j] = 2;
  27. for (l = 1; l <= k * 2; l += 2)
  28. if (i == pozGri[l] && j == pozGri[l + 1])
  29. mat[i][j] = 1;
  30. }
  31. //numarul maxim de patrate albe **************************
  32. for (i = 1; i <= n; i++) {
  33. for (j = 1; j <= n; j++) {
  34. if (mat[i][j] == 0 || mat[i][j] == 2) {
  35. nrPatratePeLinie++;
  36. }
  37. if (nrPatratePeLinie > nrmaxPatrate)
  38. nrmaxPatrate = nrPatratePeLinie;
  39. }
  40. nrPatratePeLinie = 0;
  41. }
  42. //numarul de patrate accesibile *************************
  43. for (i = 1; i <= n; i++)
  44. for (j = 1; j <= n; j++)
  45. if (mat[i][j] == 2) {
  46. if (mat[i - 1][j - 1] == 0) mat[i - 1][j - 1] = 3;
  47. if (mat[i][j - 1] == 0) mat[i][j - 1] = 3;
  48. if (mat[i + 1][j - 1] == 0) mat[i + 1][j - 1] = 3;
  49.  
  50. if (mat[i - 1][j] == 0) mat[i - 1][j] = 3;
  51. if (mat[i + 1][j] == 0) mat[i + 1][j] = 3;
  52.  
  53. if (mat[i - 1][j + 1] == 0) mat[i - 1][j + 1] = 3;
  54. if (mat[i][j + 1] == 0) mat[i][j + 1] = 3;
  55. if (mat[i + 1][j + 1] == 0) mat[i + 1][j + 1] = 3;
  56. }
  57. for (i = 1; i <= n; i++)
  58. for (j = 1; j <= n; j++)
  59. if (mat[i][j] == 3)
  60. nrPozitii++;
  61. //afisarea **********************************************
  62. fout << nrmaxPatrate << '\n';
  63. fout << nrPozitii << '\n';
  64. for (i = 1; i <= n; i++) {
  65. for (j = 1; j <= n; j++)
  66. fout << mat[i][j] << ' ';
  67. fout << '\n';
  68. }
  69. }
  70. //valoarea damelor: 2
  71. //valoarea unui patrat alb: 0
  72. //valoarea unui patrat gri: 1
  73. //loc unde poate sa mearga o rgina: 3
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement