Informatică, întrebare adresată de Ceky, 8 ani în urmă

AM NEVOIE DE RASPUNS RAPID IN C++ NU CONTEAZA CUM ESTE FACUTA !

Andrei vizitează un vechi castel cu mai multe camere. El are la dispoziţie un număr n de
coduri de acces. Fiecare cod este un număr natural format din cel mult 9 cifre. Pentru a
deschide uşa unei camere, Andrei trebuie să afle ce cheie să aleagă, dintr-un set dat. Fiecare
cheie este notată cu o cifră. Cheia ce deschide uşa din prima cameră este notată cu cifra ce se
repetă de cele mai multe ori în codurile de acces.
Cerința
Scrieţi un program care determină cheia ce va deschide prima uşă, cunoscându-se numărul n,
cele n coduri de acces, numărul de chei, notat cu k și valorile celor k chei primite.
Date de intrare
Fişierul de intrare castel.in conţine pe prima linie numărul n. Linia a doua din fişier
conţine n numere naturale, ce reprezintă codurile de acces. Linia a treia conţine numărul
natural k ce reprezinta numărul de chei primite. Linia a patra din fişier conţine k cifre, ce
reprezintă valorile cheilor.
Date de ieșire
Fişierul de ieşire castel.out conţine pe prima linie două numere naturale, separate printr-un
singur spaţiu. Primul număr din fişier reprezintă cheia ce va deschide uşa din prima cameră si
al doilea număr reprezinta numărul de repetări al cheii în şirul codurilor de acces.
Restricții și precizări
 1 ≤ k ≤ 10
 1 ≤ n ≤ 1000
 Fiecare cod de acces este un număr cu cel mult 9 cifre
 Fiecare cheie este notată cu o cifră
 Cheile au valori distincte şi sunt date în ordine crescătoare
 O uşă poate fi deschisă de o singură cheie
Exemplu
castel.in castel.out Explicație
5
1243 527 89722 6232
678
3
2 5 7
2 6 Dintre cele 3 chei date, cheia ce apare de cele mai
multe ori, în şirul codurilor de pe linia a doua, este 2 şi
apare de 6ori.Cheia 5 apare o dată, iar cheia 7 apare
de 3 ori.


boiustef: pt orice eventualitate ai codul aici, dacă ai probleme la copiat
https://pastebin.com/5f7WFehq
boiustef: este de 100
boiustef: proaspăt... :))))

Răspunsuri la întrebare

Răspuns de boiustef
2

#include <iostream>

#include <fstream>

using namespace std;

ifstream f("castel.in");

ofstream g("castel.out");

int n, cod, i, k, cif, fr[10], cheie, apmax, caut;

int main()

{

   f >> n;

   for (i=1; i<=n; ++i)

   {

       f >> cod;

       while (cod)

       {

           cif=cod%10;

           ++fr[cif];

           cod=cod/10;

       }

   }

   f >> k;

   for (i=1; i<=k; ++i)

   {

       f >> cheie;

       if (fr[cheie]>apmax) {apmax=fr[cheie]; caut=cheie;}

   }

   g << caut << " " << apmax;

}

Alte întrebări interesante