Cod sursa(job #1073702)

Utilizator apopeid14Apopei Daniel apopeid14 Data 6 ianuarie 2014 18:57:00
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.26 kb
#include <stdio.h>
#include <algorithm>
using namespace std;
bool sw;
int n, i, j, k=1, len, MIN=0x3f3f3f3f;
int v[5001], vs[5001], vt[5001];
int p;
int main()
{
    FILE *in,*out;
    in=fopen("secv.in", "rt");
    fscanf(in,"%d",&n);
    for(i=1;i<=n;++i)
    {
        fscanf(in,"%d",&v[i]);
        vs[i]=v[i];
    }
    fclose(in);
    if(n==1)
    {
        out=fopen("secv.out","wt");
        fprintf(out,"1\n");
        fclose(out);
    }
    else
    {
        sort(vs+1, vs+n+1);
        vt[1]=vs[1];
        for(i=2; i<=n; ++i)
            if(vs[i]!=vt[k])
                vt[++k]=vs[i];
        for(i=1;i<=n;++i)
            if(v[i]==vt[1])
            {
                len=1;
                p=2;
                for(j=i+1;j<=n;++j)
                {
                    ++len;
                    if(v[j]==vt[p])
                        ++p;

                    if(p==k+1)
                    {
                        if(len<MIN)
                            MIN=len, sw=1;
                        break;
                    }
                }
            }

    out=fopen("secv.out", "wt");
    if(sw)
        fprintf(out,"%d\n", MIN);
    else
        fprintf(out,"-1\n");
    fclose(out);
    }
    return 0;
}
//