Rezolvare completă PbInfo #2162 Conturi

În oraşul Olimpidia, toate băncile au hotărât să adopte o convenţie în ceea ce priveşte identificarea clienţilor săi, astfel încât fiecare cont deschis de un client să aibă asociat un cod format din exact 6 cifre:

  • prima cifră (cea mai din stânga cifră a codului) va reprezenta numărul băncii (acest lucru fiind posibil deoarece în oraş nu sunt mai mult de 9 bănci, acestea fiind numerotate începând de la 1);
  • a doua cifră va reprezenta genul persoanei (1 pentru genul masculin şi 2 pentru genul feminin);
  • ultimele 4 cifre vor reprezenta suma aflată în contul persoanei în momentul în care se aplică stabilita convenţie.

Cerința

Cunoscând numărul total de conturi deschise şi codurile corespunzătoare acestora să se determine suma maximă pe care o are o persoană de gen masculin într-un cont aflat la banca X.

Date de intrare

Fişierul de intrare conturi.in conţine pe prima linie numerele naturale N X, care reprezintă numărul de conturi deschise la băncile din oraş, respectiv numărul băncii pentru care trebuie aflată suma maximă. Pe următoarele N linii se află N numere naturale nenule, câte un număr pe o linie, reprezentând codurile conturilor, obţinute în urma aplicării convenţiei.

Date de ieșire

Fişierul de ieşire conturi.out va conţine o singură linie pe care va fi scrisă suma maximă pe care o persoană de gen masculin o are într-un cont aflat la banca X.

Restricții și precizări

  • 1 ≤ N ≤ 100
  • 1 ≤ X ≤ 9
  • Pentru datele de test se garantează că există cel puţin un cont la banca X aparţinând unei persoane de gen masculin.

Exemplu

conturi.in

5 2
213400
515000
229088
326909
217044

conturi.out

7044

Explicație

Există 5 conturi: 3 la banca 2, unul la banca 5 şi unul la banca 3.
Dintre cele 3 conturi deschise la banca 2, sunt 2 conturi deţinute de bărbaţi, unul cu suma 3400, celălalt cu suma 7044. Suma maximă cerută este 7044.

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema Conturi:

#include <fstream>
using namespace std;
ifstream fin("conturi.in");
ofstream fout("conturi.out");
int maxi,s,x,n,i,b,t;
int main()
{
    fin>>n>>x;
    maxi=0;
    for(i=1;i<=n;i++)
    {
        fin>>t;
        b=t/100000;//banca
        s=(t/10000)%10;//genul
        if(s==1 && b==x)
            if(t%10000>maxi)
               maxi=t%10000;
    }
    fout<<maxi<<'\n';
    fout.close();
    fin.close();
    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #2162 Conturi

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2162 Conturi de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!