Cod sursa(job #393422)
Utilizator | Data | 9 februarie 2010 14:17:37 | |
---|---|---|---|
Problema | Arbori de intervale | Scor | 40 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.45 kb |
#include<stdio.h>
long v[100002], n, m, i, j, op, a, b, max;
FILE *f, *g;
int main()
{ f=fopen("arbint.in", "r");
g=fopen("arbint.out", "w");
fscanf(f, "%ld%ld", &n, &m);
for(i=1; i<=n; i++)
fscanf(f, "%ld", &v[i]);
for(i=1; i<=m; i++)
{ fscanf(f, "%ld%ld%ld", &op, &a, &b);
if(op==1) v[a]=b;
if(op==0)
{ max=-1;
for(j=a; j<=b; j++)
if(v[j]>max) max=v[j];
fprintf(g, "%ld\n", max);
}
}
return 0;
}