Pagini recente » Cod sursa (job #467374) | Cod sursa (job #1782188) | Cod sursa (job #1316992) | Cod sursa (job #2936187) | Cod sursa (job #1408350)
#include <iostream>
#include <fstream>
#include <iomanip>
#include <algorithm>
#include <set>
#include <vector>
#include <map>
#include <queue>
#include <stack>
#include <utility>
#include <string>
#include <cstring>
#include <cctype>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <limits>
#include <sstream>
#include <deque>
#include <bitset>
#include <complex>
#include <functional>
#include <memory>
#include <numeric>
#define x first
#define y second
typedef std::pair<int, int> pii;
using namespace std;
struct mega{
int a, b;
};
ifstream fin("arbint.in");
ofstream fout("arbint.out");
mega v[100001];
int x[100001];
int divide(int st, int dr, int x[])
{
if(st < dr)
{
int m = (st + dr) / 2;
int ga = divide(st, m, x);
int gb = divide(m + 1, dr, x);
if(ga > gb)
return ga;
else
return gb;
}
else
return x[st];
}
int main () {
int n, m;
fin >> n >> m;
for(int i = 0; i < n; i++)
fin >> x[i];
for(int i = 0; i < m; i++)
{
int ok;
fin >> ok >> v[i].a >> v[i].b;
if(ok == 0)
{
int vv = divide((v[i].a - 1), (v[i].b - 1), x);
fout << vv << "\n";
}
else
x[v[i].a - 1] = x[v[i].b - 1];
}
return 0;
}