Pagini recente » Cod sursa (job #1108408) | Cod sursa (job #3128197) | Cod sursa (job #1915881) | Cod sursa (job #1787495) | Cod sursa (job #2494416)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("scmax.in");
ofstream fout ("scmax.out");
long n, j, x, y, nr=1, maxim;
struct tip
{
long numar, pozitie;
}sir[100000];
void swp(tip &xp, tip &yp)
{
tip aux = xp;
xp = yp;
yp = aux;
}
void ordonare()
{
for (int i=0; i<n-1; i++)
for (int j=i+1; j<n; j++)
if (sir[j].numar<sir[i].numar)
swp(sir[j], sir[i]);
}
void elim()
{
tip aux[n];
int j = 0;
for (int i=0; i<n-1; i++)
if (sir[i].numar != sir[i+1].numar)
aux[j++] = sir[i];
aux[j++] = sir[n-1];
for (int i=0; i<j; i++)
sir[i] = aux[i];
n=j;
}
void sirMax ()
{
for (int i=0; i<n; i++)
{
if (sir[i].pozitie<sir[i+1].pozitie)
nr++;
else
{
if (maxim<nr)
maxim=nr;
nr=1, j=i;
}
}
for (int i=(n-j)-1; i<maxim; i++)
fout << sir[i].numar << ' ';
}
int main()
{
fin >> n;
for (int i=0; i<n; i++)
fin >> sir[i].numar, sir[i].pozitie=i;
ordonare();
elim();
sirMax();
return 0;
}