Pagini recente » Cod sursa (job #187616) | Cod sursa (job #2523752) | Cod sursa (job #2366858) | Cod sursa (job #2707160) | Cod sursa (job #683146)
Cod sursa(job #683146)
#include<iostream>
#include<stdio.h>
#define filein "arbint.in"
#define fileout "arbint.out"
#define nMax 100001
struct op
{
bool tOp;
int a, b;
};
int A[nMax], N, M;
op B[nMax];
FILE* fin, *fout;
int citeste()
{
fin = fopen(filein, "r");
fout = fopen(fileout, "w");
fscanf(fin, "%d %d", &N, &M);
for(int i = 1; i <= N; i++) fscanf(fin, "%d", &A[i]);
for(int i = 0; i < M; i++)
fscanf(fin, "%d %d %d", &B[i].tOp, &B[i].a, &B[i].b);
fclose(fin);
return 0;
}
int intervMax(int _i, int _j)
{
int max = 0;
for(int i = _i; i <= _j; i++)
if(max < A[i])
max = A[i];
return max;
}
int print(int val)
{
fprintf(fout, "%d\n", val);
return 0;
}
int exec()
{
for(int i = 0; i < M; i++)
if(B[i].tOp)
A[B[i].a] = A[B[i].b];
else
print(intervMax(B[i].a, B[i].b));
return 0;
}
int main()
{
citeste();
exec();
return 0;
}