Cod sursa(job #782498)

Utilizator repp4raduRadu-Andrei Szasz repp4radu Data 28 august 2012 02:17:04
Problema Secv Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>
#include <algorithm>
#include <vector>

#define MAX 8192
#define INF 0x3f3f3f3f

using namespace std;

int v[MAX], aux[MAX], norm[MAX], n, minim = INF;
vector< pair < int , int > > sol;

void normalize()
{
    sort(aux + 1, aux + n + 1);
    for(int i = 1; i <= n; i++)
    {
        if(aux[i] != aux[i - 1])
            norm[++norm[0]] = aux[i];
    }
}

int main()
{
    ifstream in("secv.in"); in>>n;
    for(int i = 1; i <= n; i++)
    {
        in>>v[i]; aux[i] = v[i];
    }
    normalize();
    for(int i = 1; i <= n - norm[0]; i++)
    {
        if(v[i] == norm[1])
        {
            int j = 0, poz = 2;
            for(j = i + 1; j <= n && poz <= norm[0]; j++)
                if(v[j] == norm[poz])
                    poz++;
            if(poz > norm[0])
                minim = min(minim, j - i);
        }
    }
    ofstream out("secv.out");
    out<<(minim == INF ? -1 : minim);
    out.close();
    return 0;
}