👤

Cerinţa
Se dă o matrice cu n linii şi m coloane şi elemente numere naturale. Să se determine cea mai mare valoare care apare în matrice de cel puțin două ori. Date de intrare Programul citește de la tastatură numerele n şi m, iar apoi n*m numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie. Date de ieşire Programul afișează pe ecran cea mai mare valoare care apare în matrice de cel puțin două ori.
Restricţii şi precizări
1 ≤ m,n ≤ 100 elementele matricei vor fi mai mici decât 1.000.000 dacă în matrice nu se repeta nici o valoare se va afișa IMPOSIBIL
Exemplu

Date de intrare
4 6 4 70 15 23 38 9
1 8 23 23 14 18
17 15 13 38 12 15
3 18 8 23 12 5
Date de ieșire 38


Răspuns :

Defapt nici nu iti trebuie matrici aici, poti sa faci un vector de lungime n+m, in care vei pune toate elementele, dupa care sortezi vectorul descrescator (comanda "sort(vector,vector+n+m,greater<int>())", din libraria <algorithm>), dupa care te uiti daca vector[pozitie]=vector[pozitie+1], atunci scrii vector[pozitie] si returnezi 0. Daca iti trebuie un algoritm rapid folosestel pe acesta care ti lam descris, daca un algoritm care totusi sa includa matrici foloseste pe acesta:


#include <iostream>

using namespace std;

int a[101][101],n,m,i,j,Min,Max,p,s;


int main()
{

    cin >> n >> m;

    Min=1000001;
    Max=-1000001;

    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            {
                cin >> a[i][j];
                if(a[i][j]>Max) Max=a[i][j];
                else if(a[i][j]<Min) Min=a[i][j];
            }

    for(int k=Max;k>=Min;k--)
        for(i=1;i<=n;i++)
            for(j=1;j<=m;j++)
            {

                if(k==a[i][j])
                {

                    if(p!=k) s=0;
                    s++;
                    if(k==p and s==2)
                    {
                        cout << k;
                        return 0;
                    }
                    p=k;
                }
            }

    cout << "IMPOSIBIL";

    return 0;

}

Arata putin spus urit, dar e de 100 pcte :)