Pagini recente » Cod sursa (job #1163941) | Cod sursa (job #1270689) | Cod sursa (job #1384696) | Cod sursa (job #2413884) | Cod sursa (job #300715)
Cod sursa(job #300715)
//#include<algorithm>
//using namespace std;
#include<stdio.h>
#define DIM 5001
#define INF 1000001
int a[DIM],sub[DIM];
void cpy(int a[DIM],int b[DIM]){
int i;
for(i=1; i<=b[0]; ++i)
a[i]=b[i];}
void sort(){
int i,j;
for(i=1; i<a[0]; ++i)
for(j=i+1; j<=a[0]; ++j)
if(sub[i]>sub[j])
sub[i]^=sub[j]^=sub[i]^=sub[j];}
void solve(){
int i,j,k,min0;
scanf("%d",&a[0]);
for(i=1; i<=a[0]; ++i)
scanf("%d",&a[i]);
cpy(sub,a);
sort();
//sort(sub+1,sub+a[0]+1);
for(i=1; i<=a[0]; ++i){
sub[++sub[0]]=sub[i];
for(; sub[i+1]==sub[i]&&i<a[0]; ++i);}
/*for(i=1; i<=sub[0]; ++i)
printf("%d ",sub[i]);*/
for(i=1,min0=INF; i<=a[0]; ++i){
for(; a[i]!=sub[1]&&i<=a[0]; ++i);
for(j=i,k=1; k<=sub[0]&&j<=a[0]; ++j)
if(a[j]==sub[k])
++k;
if(k==sub[0]+1&&j-i+1<min0)
min0=j-i;}
if(min0==INF)
printf("-1");
else
printf("%d",min0);}
int main(){
freopen("secv.in","r",stdin);
freopen("secv.out","w",stdout);
solve();
return 0;}