今天在做 这道题 的时候遇到了个抽象问题,本地 AC 的代码在 AT 上过不了样例(WA 掉的代码)。使用 AT 的自定义测试发现,输出确实和本地不一样。经过 2 小时的 debug,发现问题出在 chkmx 函数上:
template <typename T>
bool chkmx(T &x, T y) { return x < y ? x = y, true : false; }
bool operator <(const std::pair<int, i64> a,
const std::pair<int, i64> b) {
return a.first ^ b.first ?
a.first < b.first : a.second > b.second;
}
如果把后面重载的 std::pair<int, i64> 的小于号扔到 chkmx 前就 过了,非常离谱。NOI Linux 带的 gcc 9.4.0,难道是版本的锅?越更越抽了属于是,想问一下有没有大佬见过这种情况 qwq。