Pagini recente » Cod sursa (job #936813) | Cod sursa (job #1545449) | Cod sursa (job #2250770) | Cod sursa (job #1968385) | Cod sursa (job #934869)
Cod sursa(job #934869)
#include<stdio.h>
int st[1000005];
int dr[1000005];
int main()
{
FILE *f,*g;
int i,n,a1,a2,Q;
f=fopen("bitone.in","r");
fscanf(f,"%d",&n);fgetc(f);
for(i=1;i<=n;i++)
fscanf(f,"%d",&st[i]);
dr[n]=n;
for(i=n-1;i>=1;i--)
if(st[i]<=st[i+1])
dr[i]=dr[i+1];
else
dr[i]=i;
//calculam st:
a1=st[1];st[1]=1;
for(i=2;i<=n;i++)
{
a2=st[i];
if(a1>=a2)
st[i]=st[i-1];
else
st[i]=i;
a1=a2;
}
/*
for(int i=1;i<=n;i++)
printf("%d ",st[i]);
printf("\n");
for(int i=1;i<=n;i++)
printf("%d ",dr[i]);
printf("\n");
*/
g=fopen("bitone.out","w");
fscanf(f,"%d",&Q);
for(i=1;i<=Q;i++)
{
fscanf(f,"%d%d",&a1,&a2);
if(st[a2]<=dr[a1])
fputc('1',g);
else fputc('0',g);
}
fputc('\n',g);
return 0;
}