The seventh day of intensive training at Nanjing Foreign Language School.
第一题和第二题,模拟
第三题
#include <bits/stdc++.h>
using namespace std;
int n, a[101010], l[100010], r[101000];
int main() {
cin >> n;
cin >> a[1];
l[1] = a[1];
for (int i = 2; i <= n; i++) {
cin >> a[i];
l[i] = __gcd(l[i - 1], a[i]);
}
r[n] = a[n];
for (int i = n - 1; i >= 1; i--) {
r[i] = __gcd(r[i + 1], a[i]);
}
int ans = 0;
for (int i = 1; i <= n; i++) {
if (i == 1) {
ans = max(ans, r[2]);
continue;
}
if (i == n) {
ans = max(ans, l[n - 1]);
continue;
}
ans = max(ans, __gcd(l[i - 1], r[i + 1]));
}
cout << ans;
return 0;
}
``````cpp
#include
using namespace std;
int n, ans, m;
struct Ree {
int a, b;
} c[101010];
bool cmp(Ree a, Ree b) {
if (a.a == b.a)
return a.b > b.b;
return a.a < b.a;
}
priority_queue q;
int main() {
cin >> n >> m;
for (int i = 1; i > c[i].a >> c[i].b;
}
sort(c + 1, c + 1 + n, cmp);
int t = 1, ans = 0;
for (int i = 1; i <= m; i++) {
while (t <= n && c[t].a <= i) {
q.push(c[t].b);
t++;
}
if (q.size()) {
ans += q.top();
q.pop();
}
}
cout << ans;
return 0;
}