Cerinţa
Se dau n numere naturale cu cel mult două cifre fiecare. Afişaţi valorile distincte în ordinea descrescătoare a numărului de apariţii.
Date de intrare
Fişierul de intrare frecventa1.in conţine pe prima linie numărul n; urmează cele n numere, dispuse pe mai multe linii şi separate prin spaţii.
Date de ieşire
Fişierul de ieşire frecventa1.out va conţine pe prima linie valorile distincte dintre cele n, în ordinea descrescătoare a numărului de apariţii.
Restricţii şi precizări
1 ≤ n ≤ 100000
dacă două valori apar de acelaşi număr de ori, se va afişa mai întâi valoarea mai mică
Exemplu
frecventa1.in
8
3 19 3 65 3 19 14 3
frecventa1.out
3 19 14 65
Răspunsuri la întrebare
Răspuns de
1
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("frecventa1.in");
ofstream fout("frecventa1.out");
int i,v[100001],n,a[100001],sw,k,b[100001];
int main()
{
for(i=0;i<99;i++)
a[i]=0;
fin>>n;
for(i=1;i<=n&&a[v[i]]<=1;i++)
{ fin>>v[i];
a[v[i]]++; }
do
{
sw=0;
for(i=1;i<n;i++)
{
if(a[v[i]]<a[v[i+1]])
{
v[0]=v[i];
v[i]=v[i+1];
v[i+1]=v[0];
sw=1; }else if(a[v[i]]==a[v[i+1]])
{
if(v[i]>v[i+1])
{
v[0]=v[i];
v[i]=v[i+1];
v[i+1]=v[0];
}
}
}
}while(sw!=0);
v[0]=0;
for(i=0;i<99;i++)
if(a[i]!=0) k++;
for(i=1;i<=k;i++)
b[i]=0;
for(i=1;i<=n;i++)
{
while(b[v[i]]==0)
{
fout<<v[i]<<" ";
b[v[i]]++;
}
}return 0;
}
DA DOAR 60 PUNCTE, LIMITA DE TIMP DEPASITA
#include <fstream>
using namespace std;
ifstream fin("frecventa1.in");
ofstream fout("frecventa1.out");
int i,v[100001],n,a[100001],sw,k,b[100001];
int main()
{
for(i=0;i<99;i++)
a[i]=0;
fin>>n;
for(i=1;i<=n&&a[v[i]]<=1;i++)
{ fin>>v[i];
a[v[i]]++; }
do
{
sw=0;
for(i=1;i<n;i++)
{
if(a[v[i]]<a[v[i+1]])
{
v[0]=v[i];
v[i]=v[i+1];
v[i+1]=v[0];
sw=1; }else if(a[v[i]]==a[v[i+1]])
{
if(v[i]>v[i+1])
{
v[0]=v[i];
v[i]=v[i+1];
v[i+1]=v[0];
}
}
}
}while(sw!=0);
v[0]=0;
for(i=0;i<99;i++)
if(a[i]!=0) k++;
for(i=1;i<=k;i++)
b[i]=0;
for(i=1;i<=n;i++)
{
while(b[v[i]]==0)
{
fout<<v[i]<<" ";
b[v[i]]++;
}
}return 0;
}
DA DOAR 60 PUNCTE, LIMITA DE TIMP DEPASITA
Alte întrebări interesante
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă