Nu aveti permisiuni pentru a descarca fisierul grader_test17.in
Cod sursa(job #2657856)
| Utilizator | Data | 12 octombrie 2020 14:54:39 | |
|---|---|---|---|
| Problema | Secv | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.94 kb |
#include <bits/stdc++.h>
using namespace std;
#define STOP fout.close(); exit(EXIT_SUCCESS);
ifstream fin("secv.in");
ofstream fout("secv.out");
///***********************
const int NMAX = 5e3 + 3;
int n, v[NMAX], uniq[NMAX], k, ans = NMAX;
void read() {
fin >> n;
for (int i = 1; i <= n; i++) {
fin >> v[i];
uniq[i] = v[i];
}
}
void makeUniq() {
k = 1;
for (int i = 2; i <= n; i++)
if (uniq[i] != uniq[i - 1])
uniq[++k] = uniq[i];
}
void solve() {
for (int i = 1; i <= n; i++) {
for (int j = i, p = 1; j <= n; j++) {
if (uniq[p] == v[j])
p++;
if (p == k + 1) {
ans = min(ans, j - i + 1);
break;
}
}
}
}
int main() {
read();
sort(uniq + 1, uniq + n + 1);
makeUniq();
solve();
fout << ((ans == NMAX) ? -1 : ans) << endl;
STOP
}
