QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#418545 | #6525. New Houses | DaDian# | WA | 87ms | 3796kb | C++20 | 1.4kb | 2024-05-23 14:25:39 | 2024-05-23 14:25:40 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const ll N = 2e5+7,mod=1e9+7,INF=1e18;
void solve(){
int n, m;
cin >> n >> m;
vector<pair<int,int>>a;
ll ans = 0, last = m, du = 0, dv = 0;
for(int i = 1; i <= n; i++) {
int u, v; cin >> u >> v;
if(u >= v) {
du = u, dv = v;
ans += u;
last--;
} else {
a.emplace_back(u, v);
}
}
if(a.empty()) {
cout << ans << "\n";
return;
}
sort(a.begin(), a.end(), [&](auto o1, auto o2) {
return o1.second - o1.first < o2.second - o2.first;
});
if(ans == 0) {
if((m + 1) / 2 >= n) {
for(auto [u, v]:a) ans += v;
cout << ans << "\n";
return;
} else {
ans += a[0].first + a[1].first;
last -= 2;
a.erase(a.begin());
a.erase(a.begin());
}
} else if(a.size() + 1 == n) {
ll ans1 = 0, ans2 = 0;
if(last / 2 >= a.size()) {
for(auto [u, v]: a) ans1 += v;
ans1 += dv;
ans2 = ans1 - dv + du - a[0].second + a[0].first;
cout << max(ans1, ans2) << "\n";
return;
}
}
for(int i = 0; i < a.size(); i++) {
auto [u, v] = a[i];
if(last / 2 >= a.size() - i) {
for(int j = i; j < a.size(); j++) ans += a[j].second;
break;
}
last--;
ans += a[i].first;
}
cout << ans << "\n";
}
int main(){
std::ios::sync_with_stdio(false);
cin.tie(0);
ll T=1;
cin>>T;
while(T--){
solve();
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3624kb
input:
3 4 5 1 100 100 1 100 1 100 1 2 2 1 10 1 10 2 3 100 50 1 1000
output:
400 2 1050
result:
ok 3 number(s): "400 2 1050"
Test #2:
score: -100
Wrong Answer
time: 87ms
memory: 3796kb
input:
100000 6 11 191141536 365120521 799679686 648574232 102602909 467685128 405440859 796808887 384858152 191995380 433392826 195648471 5 13 831367906 510447872 795639287 575551283 811207605 176441088 240156289 946977042 133416463 721098873 5 5 806744021 699586200 630510306 637827160 49223781 641709297 ...
output:
3247545200 4106290713 2653993029 5122532137 5570513606 2031887824 2044500908 1857678917 6815058419 2237593918 6646615756 5638337819 3690874076 5497726904 5513905900 5404435094 4705403467 2411992217 3430587752 5098767681 3921151709 1445672728 2692878616 3833748807 2716183054 974485573 6464787173 8839...
result:
wrong answer 51st numbers differ - expected: '755018141', found: '956338726'