daily pastebin goal
13%
SHARE
TWEET

Untitled

a guest Mar 14th, 2018 47 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top