Cod sursa(job #158129)

Utilizator Scorpion[email protected] Scorpion Data 13 martie 2008 14:30:07
Problema Aliens Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<iostream.h>
#include<fstream.h>
int  n,i,t,r,ok,nr,j,b[1000],s[1001];
int a[1001],max;

void swap(int &a,int &b)
    {int aux;
     aux=a;a=b;b=aux;}

void main()
{
ifstream h("aliniere.in");
ofstream g("aliniere.out");
h>>n;max=0;t=-1;
for(i=0;i<n;i++)
      h>>b[i];
cout<<endl;
for(i=0;i<n;i++) a[i]=b[i];
for(i=0;i<n;i++)
   for(j=0;j<n;j++)
      if(a[i]>a[j])    swap(a[i],a[j]);

    for(i=0;i<n;i++)
	  for(j=0;j<n;j++)
		 {if(b[j]!=a[i]) continue;
		   s[j-1]=1;
		  for(t=j-1;t>=0;t--)
			{s[t]=1;
			for(r=t+1;r<j;r++)

					{if(b[t]<b[r]&&s[t]<s[r]+1) s[t]=s[r]+1;}

			}
		  for(t=0;t<j-1;t++) if(b[t]>b[j]) s[t]=0;
		  t=0;
		  for(r=1;r<j;r++)
			if(s[r]>s[t]) t=r;
		  max=s[t];
		  for(r=t+1;r<j;r++)


			   if(b[r]>b[t]&&s[r]==max-1)
				      { cout<<b[r-1]<<" ";
				       max-=1;}
				    else s[r]=0;


		 }











 }