Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.22 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. ifstream in("tabel.in");
  7. ofstream out("tabel.out");
  8.  
  9. int mat[55][55];
  10. int n, m;
  11. int nr;
  12.  
  13. int main() {
  14.     in >> n >> m >> nr;
  15.     for (int i = 1; i <= n; ++i) {
  16.         for (int j = 1; j <= m; ++j) {
  17.             mat[i][j] = -1;
  18.         }
  19.     }
  20.     for (int i = 0; i < nr; ++i) {
  21.         int l, c, v;
  22.         in >> l >> c >> v;
  23.         mat[l][c] = v;
  24.     }
  25.  
  26.     for (int i = 1; i <= n; ++i) {
  27.         for (int j = 1; j <= m; ++j) {
  28.             if(mat[i][j] == -1){
  29.                 mat[i][0]++;
  30.                 mat[0][j]++;
  31.             }
  32.         }
  33.     }
  34.  
  35.  
  36.  
  37.     bool ok = true;
  38.  
  39.     while(ok){
  40.         ok = false;
  41.         for (int i = 1; i <= n; ++i) {
  42.             if(mat[i][0] == 1){
  43.                 ok = true;
  44.                 int poz = -1;
  45.                 int sum = 0;
  46.                 for (int j = 1; j < m; ++j) {
  47.                     if(mat[i][j] == -1){
  48.                         poz = j;
  49.                     }
  50.                     else
  51.                         sum += mat[i][j];
  52.                 }
  53.                 if(mat[i][m] == -1)
  54.                     poz = m;
  55.                 if(poz == m)
  56.                     mat[i][poz] = sum;
  57.                 else
  58.                     mat[i][poz] = mat[i][m] - sum;
  59.                 mat[i][0]--;
  60.                 mat[0][poz]--;
  61.             }
  62.         }
  63.         for (int j = 1; j <= m; ++j) {
  64.             if(mat[0][j] == 1){
  65.                 ok = true;
  66.                 int poz = -1;
  67.                 int sum = 0;
  68.                 for (int i = 1; i < n; ++i) {
  69.                     if(mat[i][j] == -1){
  70.                         poz = i;
  71.                     }
  72.                     else
  73.                         sum += mat[i][j];
  74.                 }
  75.                 if(mat[n][j] == -1)
  76.                     poz = n;
  77.                 if(poz == n)
  78.                     mat[n][j] = sum;
  79.                 else
  80.                     mat[poz][j] = mat[n][j] - sum;
  81.                 mat[0][j]--;
  82.                 mat[poz][0]--;
  83.             }
  84.         }
  85.     }
  86.     for (int i = 1; i <= n; ++i) {
  87.         for (int j = 1; j <= m; ++j) {
  88.             out << mat[i][j] << " ";
  89.         }
  90.         out << "\n";
  91.     }
  92.     return 0;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement