Rezolvare completă PbInfo #2217 Map

Domnul Map vă pune la dispoziție un șir a[1], a[2], …, a[n] de numere naturale.

Cerința

Pentru fiecare a[i] (i=1..n) trebuie să spuneți de câte ori apare acest element în secvența a[1], a[2], …, a[i].

Date de intrare

Fișierul de intrare map.in conține pe prima linie numărul n. Pe linia a doua, separate prin câte un spațiu, sunt elementele șirului.

Date de ieșire

În fișierul de ieșire map.out se vor afișa pe primul rând n numere naturale, al i-lea număr reprezentând numărul de apariții ale lui a[i] în secvența a[1], a[2], …, a[i].

Restricții și precizări

  • 1 ≤ n ≤ 200 000
  • 0 <= a[i] <= 1018

Exemplu

map.in

7
1 9876543210 1 3 3 9876543210 9876543210

map.out

1 1 2 1 2 2 3

Explicație

Primul element este 1. Apare o singură dată până acum.
Al doilea element este 9876543210. Și el apare pentru prima dată.
Al treilea element este 1. Apare a doua oară.
Al patrulea element este 3. Apare prima oară.
Al cincilea element este 3. Apare a doua oară.
Al șaselea element este 9876543210. Apare a doua oară.
Al șaptelea element este 9876543210. Apare a treia oară.

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 Map:

#include <bits/stdc++.h>

using namespace std;

map<long long, int> M;

int main()
{
    int i, N;
    long long x;
    ifstream  fin("map.in");
    ofstream fout("map.out");
    fin >> N;
    for (i = 1; i <= N; i++)
    {
        fin >> x;
        M[x]++;
        fout << M[x] << " ";
    }
    fout << "\n";
    fout.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 #2217 Map

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2217 Map 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!