Pagini recente » Cod sursa (job #374087) | Diferente pentru clasament-arhiva-educationala intre reviziile 12 si 6 | Cod sursa (job #745053) | Arhiva de probleme | Cod sursa (job #1309989)
#include <fstream>
#include <vector>
#include <set>
#include <cstdlib>
#define Max_Size 10000
using namespace std;
const char iname[] = "secv.in";
const char oname[] = "secv.out";
long long N, A[Max_Size];
vector < long long > Subsequence;
set < long long > My_Set;
int main()
{
ifstream in( iname );
in >> N;
for(int i = 0; i < N; ++i) in >> A[i], My_Set.insert(A[i]);
for(set < long long > :: iterator it = My_Set.begin(); it != My_Set.end(); ++it) Subsequence.push_back( *it );
int rez = Max_Size;
for(int i = 0, j; i < N; ++i)
if(A[i] == Subsequence[0]) {
int step = 1;
for(j = i + 1; j < N; ++j) {
if(A[j] == Subsequence[step]) ++step;
if(step >= Subsequence.size()) break;
}
if(step == Subsequence.size()) rez = min(rez, j - i + 1);
}
ofstream out( oname );
out << (rez != Max_Size ? rez :-1) << '\n';
}