Pagini recente » Cod sursa (job #2714100) | Cod sursa (job #2446015) | Cod sursa (job #1140490) | Cod sursa (job #2548954) | Cod sursa (job #67524)
Cod sursa(job #67524)
#include <cstdio>
#define INF "psir.in"
#define OUF "psir.out"
#define NMAX 32
inline int psir(int a[],int comb)
{
register int k,s[NMAX],d=0;
for(k=0;k<32;++k)
if(comb&(1<<k)) { ++d;s[d]=a[k+1]; }
if(d>2)
{
for(k=3;k<=d;++k) if((s[k]-s[k-1])*(s[k]-s[k-2])>0) return 0;
return 1;
}
else return 0;
}
int main()
{
FILE *in,*out;
int a[NMAX],i,n,c,dim;
long long total=0;
in=fopen(INF,"r");
out=fopen(OUF,"w");
fscanf(in,"%d",&n);
for(i=1;i<=n;++i) fscanf(in,"%d",a+i);
if(n>1)
{
total+=n*(n-1)/2;
dim=1<<n;
for(c=1;c<dim;++c) if(psir(a,c)) ++total;
}
fprintf(out,"%lld\n",total);
fclose(in);fclose(out);
return 0;
}