Pagini recente » Cod sursa (job #2385680) | Cod sursa (job #2596685) | Cod sursa (job #636958) | Cod sursa (job #1863325) | Cod sursa (job #117494)
Cod sursa(job #117494)
#include <stdio.h>
#define MAX 1000001
struct nod{
long int inf;
nod *adr;
};
nod *v[MAX];
nod *q,*r;
long int x[MAX],max,uz[MAX],intrv,sum=0;
long int n,i,t;
int main(){
FILE *f = fopen("operatii.in","r");
fscanf(f,"%ld",&n);
for (i=1;i<=n;i++)
v[i]=NULL;
for (i=1;i<=n;i++) {
fscanf(f,"%ld",&x[i]);
q = new nod;
q->inf = i;
q->adr = v[x[i]];
v[x[i]]=q;
if (x[i]>max)
max = x[i];
}
fclose(f);
uz[0]=1;
uz[n+1]=1;
intrv = 1;
for (i=0;i<=max;i++) {
q = v[i];
while (q!=NULL) {
t = q->inf;
uz[t]=1;
if ((uz[t-1]==0)&&(uz[t+1]==0)){
intrv++;
} else {
if ((uz[t-1]!=0)&&(uz[t+1]!=0))
intrv--;
}
r = q;
q = q->adr;
delete r;
}
sum+=intrv;
}
FILE *g = fopen("operatii.out","w");
fprintf(g,"%ld",sum);
fclose(g);
return 0;
}