diff --git a/Luogu/problem/P7667/P7667.cpp b/Luogu/problem/P7667/P7667.cpp new file mode 100644 index 00000000..d6d8bcb0 --- /dev/null +++ b/Luogu/problem/P7667/P7667.cpp @@ -0,0 +1,30 @@ +#include + +using namespace std; + +struct node { + long long a, b; + + bool operator<(const node& b) { + return a < b.a; + } +} a[500005]; +int n; +long long s[500005], c, ans; + +int main() { + cin >> n; + for (int i = 1; i <= n; i++) { + cin >> a[i].a >> a[i].b; + } + sort(a + 1, a + 1 + n); + for (int i = 1; i <= n; i++) { + s[i] = s[i - 1] + a[i].b; + } + for (int i = 0; i <= n; i++) { + c = max(c, a[i].a - s[i - 1]); + ans = max(ans, s[i] - a[i].a + c); + } + cout << ans << endl; + return 0; +}