Cod sursa(job #2193042)

Utilizator lucametehauDart Monkey lucametehau Data 8 aprilie 2018 14:52:57
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream cin ("secv.in");
ofstream cout ("secv.out");

const int nmax = 5000;

int n, nrdist;
int lim, lg, pz;
int sol;

int v[1 + nmax], temp[1 + nmax];
int dist[1 + nmax];

int main() {
  cin >> n;
  for(int i = 1; i <= n; i++) {
    cin >> v[i];
    temp[i] = v[i];
  }
  sort(temp + 1, temp + n + 1);
  dist[++nrdist] = temp[1];
  for(int i = 2; i <= n; i++)
    if(temp[i - 1] != temp[i])
      dist[++nrdist] = temp[i];
  sol = nmax;
  for(int i = 1; i <= n; i++) {
    int j = i, k = 1;
    while(j <= n && k <= nrdist) {
      if(v[j] == dist[k])
        k++;
      j++;
    }
    if(j <= n || k > nrdist)
      sol = min(sol, j - i);
  }
  if(sol != nmax)
    cout << sol;
  else
    cout << -1;
  return 0;
}