Cod sursa(job #2587138)

Utilizator valentinchipuc123Valentin Chipuc valentinchipuc123 Data 22 martie 2020 02:00:48
Problema Secv Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <bits/stdc++.h>

using namespace std;

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

int n,v[5005],ind[5005],ct[5005],nr=0;
int minim=0,lung=5005;

int main()
{
f>>n;
for(int i=1;i<=n;i++)
 f>>v[i];
ind[1]=1; ct[1]=1;
minim=1; lung=1;
for(int i=2;i<=n;i++)
 {
  ct[i]=1; ind[i]=i;
  for(int j=1;j<i;j++)
   {
    if(v[i]>v[j]) {
                   if(ct[j]+1>ct[i])
                    {
                    ct[i]=ct[j]+1;
                    ind[i]=ind[j];
                    }
                   else if(ct[j]+1==ct[i]&&ind[j]>ind[i])
                         ind[i]=ind[j];
                  }
   }
  if(ct[i]>minim) {minim=ct[i]; lung=i-ind[i]+1;}
  else if(ct[i]==minim) {
                         if(i-ind[i]+1<lung)
                          lung=i-ind[i]+1;
                        }
 }
sort(v+1,v+n+1);
for(int i=1;i<=n;i++)
 if(v[i]!=v[i-1]) nr++;
if(minim==nr) g<<lung;
else g<<"-1";
}