Cod sursa(job #2442517)

Utilizator marius004scarlat marius marius004 Data 24 iulie 2019 11:39:12
Problema Secv Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <algorithm>

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

const int NMAX = 5'005;
int v[NMAX],n,k,w[NMAX],dp[NMAX],sol;

int main(){
    
    f >> n;
    
    for(int i = 0;i < n;i++){
        f >> v[i];
        w[i] = v[i];
    }
    
    std::sort(w + 1,w + n + 1);
    
    for(int i = 1;i <= n;i++)
        if(w[i] != w[i - 1])
            dp[k++] = w[i];
    
    k--;
    sol = n + 1;
    
    for(int i = 1;i <= n - k + 1;i++){
        int pos = 1;
        for(int j = i;j <= n;j++){
            if(dp[pos] == v[j])
                pos++;
            if(pos > k){
                sol = std::min(sol,j - i + 1);
                break;
            }
        }
    }
    
    g << sol;
    
    f.close();
    g.close();
    return 0;
}