Pagini recente » Cod sursa (job #1638899) | Cod sursa (job #2645937) | Cod sursa (job #1335669) | Cod sursa (job #2423269) | Cod sursa (job #555808)
Cod sursa(job #555808)
#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 );
}
for(int i=1;i<=n;i++)
out<<v[i]<<" ";
out<<'\n';
out<<lmax;
}
int main()
{
read();
solve();
return 0;
}