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] <= 10
18
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 .
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!