社区讨论
85求条WA in #7#11#12
P6627[省选联考 2020 B 卷] 幸运数字参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mkhtnkmi
- 此快照首次捕获于
- 2026/01/17 12:43 2 个月前
- 此快照最后确认于
- 2026/01/19 21:30 2 个月前
CPP
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n;
vector<pair<int, int> > m;
int glob = 0;
signed main() {
cin >> n;
for (int i = 1; i <= n; i++) {
int op, x, y, w;
cin >> op;
if (op == 1) {
cin >> x >> y >> w;
m.push_back({x, w});
m.push_back({y + 1, w});
} else if (op == 2) {
cin >> x >> w;
m.push_back({x, w});
m.push_back({x + 1, w});
} else if (op == 3) {
cin >> x >> w;
glob ^= w;
m.push_back({x, w});
m.push_back({x + 1, w});
}
}
if (m.empty()) {
cout << glob << " " << 0 << endl;
return 0;
}
sort(m.begin(), m.end());
int cur = glob;
int maxn = cur;
int ans = LLONG_MAX;
if (cur > maxn) {
maxn = cur;
ans = m[0].first - 1;
} else if (cur == maxn) {
if (abs(m[0].first - 1) < abs(ans)) {
ans = m[0].first - 1;
} else if (abs(m[0].first - 1) == abs(ans)) {
if (m[0].first - 1 > ans) {
ans = m[0].first - 1;
}
}
}
if (cur > maxn) {
maxn = cur;
ans = 0;
} else if (cur == maxn) {
if (abs(0) < abs(ans)) {
ans = 0;
} else if (abs(0) == abs(ans)) {
if (0 > ans) {
ans = 0;
}
}
}
for (int i = 0; i < m.size(); ) {
int pos = m[i].first;
if (cur > maxn) {
maxn = cur;
ans = pos - 1;
} else if (cur == maxn) {
if (abs(pos - 1) < abs(ans)) {
ans = pos - 1;
} else if (abs(pos - 1) == abs(ans)) {
if (pos - 1 > ans) {
ans = pos - 1;
}
}
}
while (i < m.size() && m[i].first == pos) {
cur ^= m[i].second;
i++;
}
if (cur > maxn) {
maxn = cur;
ans = pos;
} else if (cur == maxn) {
if (abs(pos) < abs(ans)) {
ans = pos;
} else if (abs(pos) == abs(ans)) {
if (pos > ans) {
ans = pos;
}
}
}
}
if (cur > maxn) {
maxn = cur;
ans = m.back().first;
} else if (cur == maxn) {
if (abs(m.back().first) < abs(ans)) {
ans = m.back().first;
} else if (abs(m.back().first) == abs(ans)) {
if (m.back().first > ans) {
ans = m.back().first;
}
}
}
cout << maxn << " " << ans;
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...