Cod sursa(job #544005)

Utilizator Daniel3717Aleca Daniel Adrian Daniel3717 Data 28 februarie 2011 21:32:40
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <fstream>
#include <iostream>
using namespace std;
long i,i1,n,pos[100001],nr[100001],v[100001],vmax[100001],aux,k,kmax,nrmax,posmax;
int st[100001];
int main(void)
{
ifstream f("grader_test3.in");
ofstream g("scmax.out");

f>>n;

for (i=1;i<=n;i++)
	{
	f>>nr[i];
	pos[i]=i;
	st[i]=0;
	}

for (i=1;i<n;i++)
	for (i1=i;i1<=n;i1++)
		if (nr[i]>nr[i1])
			{
			aux=nr[i];
			nr[i]=nr[i1];
			nr[i1]=aux;
			aux=pos[i];
			pos[i]=pos[i1];
			pos[i1]=aux;
			}

kmax=0;
	
for (i=1;i<=n;i++)
	if (st[i]==0)
		{st[i]=1;
		k=1;
		nrmax=nr[i];
		posmax=pos[i];
		v[k]=nr[i];
		for (i1=i;i1<=n;i1++)
			if ((pos[i1]>posmax)&&(nr[i1]>nrmax))
				{
				posmax=pos[i1];
				nrmax=nr[i1];
				k++;
				v[k]=nr[i1];
				}
		if (k>kmax)
			{
			for (i1=1;i1<=k;i1++)
				vmax[i1]=v[i1];
			kmax=k;
			}
		}

g<<kmax;
g<<endl;
for (i=1;i<=kmax;i++)
g<<vmax[i]<<' ';

f.close();
g.close();

return 0;}