Cod sursa(job #1120818)

Utilizator iordache.bogdanIordache Ioan-Bogdan iordache.bogdan Data 25 februarie 2014 10:18:38
Problema Secv Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
#include <algorithm>

using namespace std;

int n,v[50005],vs[50005],w[50005];

int i,t,j,k,sol=(1<<30);

bool ok;

int main() {
	ifstream f("secv.in");
	ofstream g("secv.out");
	
	f>>n;
	for(i=1;i<=n;i++) {
		f>>v[i];
		vs[i]=v[i];
	}
	sort(vs+1,vs+n+1);
	i=1;
	while(i<=n) {
		w[++k]=vs[i];
		i++;
		while(vs[i]==vs[i-1] && i<=n)
			i++;
	}
	v[n+1]=-1;
	for(i=1;i<=n;i++) {
		if(v[i]==w[1]) {
			ok=1;
			t=i;
			for(j=2;j<=k;j++) {
				while(t<=n && v[t]!=w[j])
					t++;
				if(t==n+1) {
					ok=0;
					break;
				}
			}
			if(ok) {
				sol=min(sol,t-i+1);
			}
		}
	}
	if(sol==(1<<30))
		g<<"-1\n";
	else
		g<<sol<<"\n";
	return 0;
}