Mai intai trebuie sa te autentifici.
Cod sursa(job #555792)
Utilizator | Data | 15 martie 2011 19:33:14 | |
---|---|---|---|
Problema | Secv | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.76 kb |
#include<fstream>
using namespace std;
ifstream in("secv.in");
ofstream out("secv.out");
const int N=5010;
int n,v[N],x[N],vmax=-1,lmax=-N;
pair<int,int>aux[N];
void read()
{
in>>n;
for(int i=1;i<=n;i++)
{
in>>aux[i].first;
aux[i].second=i;
}
sort(aux+1,aux+n+1);
}
inline int max(int a,int b)
{
return a>b?a:b;
}
void solve()
{
//vmax=aux[n].first;
int val=1;
v[aux[1].second]=val;
for(int i=2;i<=n;i++)
{
if(aux[i].first!=aux[i-1].first)
++val;
v[aux[i].second]=val;
}
vmax=val;
for(int i=1;i<=n;i++)
{
if(v[i]==1)
x[1] = i;
else
x[v[i]]= x[v[i]-1];
if(v[i]==vmax && x[v[i]]!=0)
lmax= max( lmax, i-x[v[i]]+1 );
}
out<<lmax;
}
int main()
{
read();
solve();
return 0;
}