A.Villages: Landlines
题目链接
思路:区间合并
#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
typedef pair<int, int> PII;
typedef long long LL;
PII p[N];
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i ++ ) {
int l, r;
cin >> l >> r;
p[i] = {l - r, l + r};
}
sort(p, p + n);
LL res = 0;
int L = p[0].first, R = p[0].second;
for (int i = 1; i < n; i ++ ) {
int l = p[i].first, r = p[i].second;
if (l <= R) {
R = max(r, R);
} else {
res += l - R;
R = r;
}
}
cout << res << endl;
return 0;
}
G.Lexicographical Maximum
题目链接
思路:如果数不是9999999……9X的话,输出size-1位9,如果是的话,直接输出
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
cin >> s;
bool flag = 1;
for (long long i = 0; i < s.size() - 1; i ++ ) {
if (s[i] != '9') {
flag = 0;
}
}
if (flag) {
cout << s << endl;
} else {
for (long long i = 0; i < s.size() - 1; i ++ ) {
cout << 9;
}
}
return 0;
}