Cod sursa(job #912968)

Utilizator classiusCobuz Andrei classius Data 13 martie 2013 01:10:47
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
#include <vector>
#include <algorithm>
#define mn(a,b) (a)<(b)?(a):(b)
#define INF 6000

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

int main()
{
    vector <int> q;
    int n,i,sol=INF,j,k;
    int v[5001],b[5001];

    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>v[i];
        b[i]=v[i];
    }
    sort(b+1,b+n+1);
    b[0]=-1;
    for(i=1;i<=n;i++) if(b[i]!=b[i-1]) q.push_back(b[i]);
    if(q.size()<=1) {sol=1;goto stop;}
    for(i=1;i<=n;i++)
    {
        if(q[0]==v[i])
        {
            for(j=i+1,k=1;j<=n;j++)
            {
                if(v[j]==q[k]) k++;
                if(k>=q.size())
                {
                    sol=mn(sol,j-i+1);
                    break;
                }
            }
        }
    }
    stop:
    if(sol==INF) g<<-1;
    else g<<sol;

    f.close();
    g.close();
}