Cod sursa(job #609703)

Utilizator PlayLikeNeverB4George Marcus PlayLikeNeverB4 Data 22 august 2011 22:22:53
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#include <vector>
using namespace std;

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

const int maxn=5005;
int i,j,N,Min;
vector<int> A,B;
int C[maxn];

int main() {
	fin >> N; int x;
	if(N==0) { 
		fout << 0;
		return 0;
	}
	for(i=1;i<=N;i++) {
		fin >> x;
		A.push_back(x);
	}
	B=A;
	sort(B.begin(),B.end());
	C[++C[0]]=B[0];
	for(i=1;i<N;i++)
		if(B[i]!=B[i-1])
			C[++C[0]]=B[i];
	Min=N+1;
	for(i=0;i<N-C[0]+1;i++) {
		if(A[i]==C[1]) {
			int k=2;
			for(j=i+1;j<N;j++) {
				if(k>C[0]) break;
				if(A[j]==C[k]) k++;
			}
			if(k<C[0]) continue;
			if(j==N && C[C[0]]!=A[N-1]) continue;
			Min=min(Min,j-i);
		}
	}
	if(Min==N+1) fout << -1;
	else fout << Min;
}