Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
29801 | 23级逯一鸣 | 【J】T3 | C++ | 编译错误 | 0 | 0 MS | 0 KB | 967 | 2024-05-27 15:06:52 |
#include <algorithm> #include <ios> #include <iostream> #include <numeric> #include <vector> using namespace std; using i64 = long long; constexpr int MOD = 1e9 + 7; int main() { int n; vector<int> x, y; cin >> n; for (int i = 0; i < n; ++i) { int a, b; cin >> a >> b; x.emplace_back(a); y.emplace_back(b); } vector<int> idx(n); vector l(n, 1LL), r(n, 1LL); iota(idx.begin(), idx.end(), 0); sort(idx.begin(), idx.end(), [x](int i, int j) { return x[i] < x[j]; }); for (int i = 1; i < n; ++i) { for (int j = i - 1; j >= 0; --j) { if (y[idx[i]] < y[idx[j]]) r[j] = (r[j] + l[i]) % MOD; else l[i] = (r[j] + l[i]) % MOD; } } i64 ans = MOD - n; for (int i = 0; i < n; ++i) ans = (ans + l[i] + r[i]) % MOD; cout << ans << '\n'; return 0; }