fbpx

Problema #751 – MCautare – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dă o matrice cu n linii și m coloane și elemente numere naturale și k valori naturale. Determinați pentru fiecare dintre cele k valori dacă apare pe fiecare linie a matricei.

Date de intrare

Programul citește de la tastatură numerele n m, apoi cele n linii ale matricei, fiecare cu câte m valori. Apoi citește valoarea k, apoi k valori x.

Date de ieșire

Programul va afișa pe ecran, pentru fiecare dintre cele k valori x, mesajul DA, dacă x apare pe fiecare dintre liniile matricei, respectiv NU în caz contrar. Fiecare mesaj va fi afișat pe câte o linie a ecranului.

Restricții și precizări

  • 1 ≤ n,m ≤ 100
  • 1 ≤ k ≤ 1000
  • elementele matricei și cele k valori x sunt mai mici decât 1.000.000.000

Exemplu

Intrare

4 5
3 7 9 9 7 
3 7 8 10 9 
8 9 5 10 7 
3 5 4 7 9 
6
9 4 7 8 10 7

Ieșire

DA
NU
DA
NU
NU
DA

Explicație

Dintre cele 6 valori citite, doar prima, a treia și a șasea apar pe toate liniile matricei.

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n,m;
    cin >> n >> m;
    int r=-1;
    int a[100][100] , v[1000];
    for(int i = 0 ; i < n ; ++i)
        for(int j = 0 ; j < m ; ++j)
            cin >> a[i][j];
    int p;
    cin >> p;
    for(int i = 0 ; i < p ; ++i)
        cin >> v[i];
    for(int i = 0 ; i < p ; ++i)
    {
        int cnt=0;
        for(int j = 0 ; j < n ; ++j)
        {
            for(int k=0 ; k < m ; ++k)
            {
                if(a[j][k]==v[i] && r!=j)
                    {
                        r = j;
                        cnt++;
                    }
            }
        }
        if(cnt==n) cout << "DA" << endl;
        else cout << "NU" << endl;
    }
    return 0;
}
Comentarii

S-ar putea sa iti placa