Răspuns :
a.
Algoritmul este eficient din punct de vedere al timpului de executare, întrucât are o structură liniară. Sunt citite ambele șiruri și sunt memorate aparițiile fiecărei cifre în ambele șiruri prin 2 vectori de frecvență. Numărul de perechi este aflat calculând suma produselor aparițiilor fiecărei cifre în cele 2 șiruri.
b.
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream fin("date.in");
int Na, Nb;
int cifrea[10] = {0}, cifreb[10] = {0};
fin >> Na >> Nb;
int x;
for (int i = 0; i < Na; i++) {
fin >> x;
int ultcifra = x % 10;
cifrea[ultcifra]++;
}
for (int i = 0; i < Nb; i++) {
fin >> x;
int ultcifra = x % 10;
cifreb[ultcifra]++;
}
int nrperechi = 0;
for (int i = 0; i < 10; i++)
nrperechi += cifrea[i] * cifreb[i];
cout << nrperechi << "\n";
return 0;
}
Vă mulțumim că ați vizitat platforma noastră dedicată Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, vă rugăm să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la lista de favorite!