#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define pb push_back
vector<bool> build_tower;
vector<pair<pair<int, int>, int>> coords;
int main () {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n, i, x, y;
cin >> n;
coords = vector<pair<pair<int, int>, int>>(n + 2);
coords[0] = {{-1, -1}, 0};
for (i = 1; i <= n; i++) {
cin >> coords[i].first.first >> coords[i].first.second;
coords[i].second = i;
}
coords[n + 1] = {{-1, -1}, 0};
sort(coords.begin() + 1, coords.end() - 1);
build_tower = vector<bool>(n + 1, false);
for (i = 1; i <= n; i++) {
if (coords[i].first.first != coords[i + 1].first.first) {
build_tower[coords[i].second] = true;
} else if (coords[i].first.first != coords[i - 1].first.first) {
build_tower[coords[i].second] = true;
}
}
sort(coords.begin() + 1, coords.end(),
[] (pair<pair<int, int>, int> a, pair<pair<int, int>, int> b) {
if (a.first.second == b.first.second) {
return a.first.first < b.first.first;
}
return a.first.second < b.first.second;
});
for (i = 1; i <= n; i++) {
if (coords[i].first.first != coords[i + 1].first.first) {
build_tower[coords[i].second] = true;
} else if (coords[i].first.first != coords[i - 1].first.first) {
build_tower[coords[i].second] = true;
}
}
for (i = 1; i <= n; i++) {
cout << (build_tower[i] ? "1" : "0");
}
return 0;
}
# | 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... |