# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1224602 | Jer | Inside information (BOI21_servers) | C++20 | 538 ms | 2236 KiB |
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 120005;
int n, k;
pair<int, int> r[MAXN];
void share(int a, int b){
r[a] = r[b] = {min(r[a].first, r[b].first), max(r[a].second, r[b].second)};
}
int cnt(int i){
int left = i, right = i;
while (r[left].first <= i and r[left].second >= i) left--;
while (r[right].first <= i and r[right].second >= i) right++;
/*
int l = 1, h = i, m = (l + h) / 2;
while (l < h and m >= h and m <= l){
m = (l + h) / 2;
//cout << "L " << l << " " << h << " " << m << "\n";
if (r[m].first <= i and r[m].second >= i)
left = m, h = m - 1;
else
l = m + 1;
}
l = i, h = n, m = (l + h) / 2;
while (l < h and m <= h and m >= l){
m = (l + h / 2);
//cout << "R " << l << " " << h << " " << m << "\n";
if (r[m].first <= i and r[m].second >= i)
right = m, l = m + 1;
else
h = m - 1;
}
//cout << left << " " << right << '\n';
*/
return right - left - 1;
}
int main(){
scanf("%d%d", &n, &k);
for (int i = 1; i <= n; i++)
r[i] = {i, i};
char t;
int a, b, c;
int passed = 0;
for (int z = 0; z < n + k - 1; z++)
{
scanf(" %c", &t);
if (t == 'S')
{
scanf("%d%d", &a, &b);
share(a, b);
}
if (t == 'Q')
{
scanf("%d%d", &a, &b);
printf("%s\n", (b >= r[a].first and b <= r[a].second) ? "yes" : "no");
}
if (t == 'C')
{
scanf("%d", &c);
printf("%d\n", cnt(c));
}
}
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |