Cod sursa(job #167279)

Utilizator sigridMaria Stanciu sigrid Data 29 martie 2008 13:27:29
Problema Secv Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<fstream.h>
#define dim2 5001

ifstream f("secv.in");
ofstream g("secv.out");

struct vect
{int s;
 unsigned long p;
};
vect v[dim2];
int n,maxim;
unsigned long man[dim2];

int main()
{
int i,j,max,parinte,ok;

f>>n;
for(i=1;i<=n;i++)
 {f>>man[i];
  ok=1;
  for(j=i-1;j>=1;j--)
   if(man[j]==man[i]) {ok=0;break;}
  maxim+=ok;
 }
f.close();

ok=0;
for(i=1;i<=n;i++)
{max=0;
 parinte=-1;
 for(j=(i-1);j>=1;j--)
  if(man[j]<man[i])
   {if(v[j].s>max)
     {max=v[j].s;
      parinte=j;
     }
   }
 v[i].s=max+1;
 if(parinte==(-1)) v[i].p=0;
 else if(v[parinte].p) v[i].p=v[parinte].p;
    else v[i].p=parinte;
 if(v[i].s==maxim)
  {g<<(i-v[i].p)+1<<'\n';
   ok=1;
   break;
  }
}
if(!ok) g<<-1<<'\n';
g.close();

return 0;
}