Pagini recente » Cod sursa (job #2701056) | Cod sursa (job #1904064) | Diferente pentru home intre reviziile 178 si 179 | Cod sursa (job #778906) | Cod sursa (job #205814)
Cod sursa(job #205814)
#include<stdio.h>
FILE *fin=fopen("secv.in","r"),
*fout=fopen("secv.out","w");
int N,a[5005];
struct nod{int x;nod* next;};
typedef nod* sir;
sir s;
int main(){
fscanf(fin,"%d",&N);
s=new nod;
s->next=NULL;
for(int i=1;i<=N;i++){
fscanf(fin,"%d",&a[i]);
sir aux=new nod;
aux->x=a[i];
sir p=s;
for(;p->next&&p->next->x<a[i];p=p->next);
if(p->next==NULL){
aux->next=NULL;
p->next=aux;
}
else
if(p->next->x!=a[i]){
aux->next=p->next;
p->next=aux;
}
}
s=s->next;
int pozi;
int i;
for(i=1;i<=N&&a[i]!=s->x;i++);
pozi=i;
s=s->next;
for(;i<=N&&s->next;i++)
if(a[i]==s->x) s=s->next;
if(s->next==NULL)
fprintf(fout,"%d\n",i-pozi+1);
else
fprintf(fout,"-1\n");
fclose(fin);
fclose(fout);
return 0;
}