Cod sursa(job #3315077)

Utilizator alexalghisiAlghisi Alessandro meitatiidirect.ro alexalghisi Data 12 octombrie 2025 11:46:37
Problema Elimin Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 2.13 kb
#include <cstring>
#include <iostream>
using namespace std;

int main() {
  int a[101][101], i, j, n, m, fr[10001];
  char c;
  cin >> n >> m >> c;
  for (i = 0; i < n; ++i) {
    for (j = 0; j < m; ++j) {
      int nr;
      cin >> nr;
      fr[nr]++;
    }
  }

  if (c == '+') {
    int val = 0;
    for (j = 0; j < m; ++j)
      for (i = 0; i < n; ++i) {
        while (fr[val] == 0)
          val++;
        a[i][j] = val;
        fr[val]--;
      }
  }
  if (c == '-') {
    int val = 1000;
    for (j = 0; j < m; ++j)
      for (i = 0; i < n; ++i) {
        while (fr[val] == 0)
          val++;
        a[i][j] = val;
        fr[val]--;
      }
  }
  for (i = 0; i < n; ++i) {
    for (j = 0; j < m; ++j)
      cout << a[i][j] << " ";
    cout << endl;
  }
}
// Cerința
// Se dă o matrice cu n linii și m coloane și un caracter c care poate fi + sau
// -. Să se sorteze, după linii, matricea crescător dacă semnul este + sau
// descrescător dacă semnul este -.

// Sortarea matricei după coloane este rearanjarea elementelor astfel încât,
// parcurgând matricea pe coloane, de la stânga la dreapta și de sus în jos,
// elementele sunt în ordine crescătoare/descrescătoare.

// Date de intrare
// Programul citește de la tastatură numerele n și m și caracterul c, iar apoi n
// linii cu m numere naturale. Fiecare linie pe câte un rând, toate numerele de
// pe fiecare linie separate prin spații unul de celălalt.

// Date de ieșire
// Programul va afișa pe ecran matricea sortată conform cerinței, câte o linie a
// matricei pe o linie a ecranului, elementele fiecărei linii fiind separate
// prin câte un spațiu.

// Restricții și precizări
// 1 ≤ n ≤ m ≤ 100
// elementele matricei vor fi mai mici sau egale cu 1.000
// Exemplul 1:
// Intrare

// 5 4 +
// 2 4 1 3
// 9 8 7 6
// 20 19 18 16
// 30 29 124 12
// 59 21 0 3
// Ieșire

// 0 4 12 21
// 1 6 16 29
// 2 7 18 30
// 3 8 19 59
// 3 9 20 124
// Exemplul 2:
// Intrare

// 5 4 -
// 2 4 1 3
// 9 8 7 6
// 20 19 18 16
// 30 29 124 12
// 59 21 0 3
// Ieșire

// 124 20 9 3
// 59 19 8 3
// 30 18 7 2
// 29 16 6 1
// 21 12 4 0

// https://www.pbinfo.ro/probleme/2874/sortmatrixcol