Cod sursa(job #1478180)

Utilizator eu3neuomManghiuc Teodor-Florin eu3neuom Data 28 august 2015 03:09:35
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

ifstream fin("secv.in");
ofstream fout("secv.out");

const int NMax = 5005;
const int INF = 1e9;

int a[NMax], b[NMax], v[NMax];

int main(){
    int n, k = 0;
    fin >> n;
    for(int i = 1; i <= n; i++){
        fin >> a[i];
        b[i] = a[i];
    }
    sort(b + 1, b + n + 1);
    v[++k] = b[1];
    for(int i = 2; i <= n; i++){
        if(b[i] != v[k]){
            v[++k] = b[i];
        }
    }
    int c, ans = INF, j;
    for(int i = 1; i <= n - k + 1; i++){
        if(a[i] == v[1]){
            c = 2;
            for(j = i + 1; j <= n && c <= k; j++){
                if(a[j] == v[c]){
                    c++;
                }
            }
            if(c > k){
                ans = min(ans, j - i);
            }
        }
    }
    if(ans == INF){
        fout << -1;
    } else {
        fout << ans;
    }
    return 0;
}