QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#655657 | #7622. Yet Another Coffee | fls | WA | 1ms | 7792kb | C++20 | 2.7kb | 2024-10-19 09:03:06 | 2024-10-19 09:03:07 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define qmx(a,b) a<b?b:a
#define qmn(a,b) a>b?b:a
#define ll long long
#define fr first
#define se second
const int mxn = 2e5+5;
priority_queue < pair<ll, int>, vector< pair<ll, int> >, greater< pair<ll, int>> >que;
priority_queue < ll, vector<ll>, greater<ll> > fq;
struct token{
int ri;
ll wi;
}wr[mxn];
ll a[mxn], mna[mxn], sufw[mxn], ans;
bool used[mxn];
inline bool cmp(struct token t1, struct token t2){
return t1.ri < t2.ri;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
int test, di;
cin>>test;
while(test--){
int n, m;
cin >> n >> m;
mna[0] = 1;
for(int i = 1 ; i <= n ; i++){
cin >> a[i];
used[i] = false;
if(a[i] < a[mna[i - 1]])
mna[i] = i;
else
mna[i] = mna[i - 1];
}
for(int i = 1 ; i <= m ; i++){
cin >> wr[i].ri >> wr[i].wi;
}
sort(wr + 1, wr + 1 + m, cmp);
sufw[m + 1] = 0;
for(int i = m ; i >= 1 ; i--){
sufw[i] = sufw[i + 1] + wr[i].wi;
}
que.push(make_pair(a[mna[wr[1].ri]] - sufw[1], 1));
used[mna[wr[1].ri]] = true;
for(int i = 2 ; i <= m ; i++){
if(wr[i].ri == wr[i - 1].ri || mna[wr[i].ri] == mna[wr[i - 1].ri])
continue;
que.push(make_pair(a[mna[wr[i].ri]] - sufw[i], i));
used[mna[wr[i].ri]] = true;
}
for(int i = 1 ; i <= n ; i++){
if(!used[i]){
fq.push(a[i]);
}
}
ans = 0;
di = m + 1;
for(int pi, i = 1 ; i <= n ; i++){
while(!que.empty() && que.top().second >= di){
pi = que.top().second;
fq.push(a[mna[wr[pi].ri]]);
que.pop();
}
if(!que.empty() && !fq.empty()){
if(que.top().first + sufw[di] < fq.top()){
ans += que.top().first + sufw[di];
di = que.top().second;
que.pop();
}else{
ans += fq.top();
fq.pop();
}
}else{
if(!que.empty()){
ans += que.top().first + sufw[di];
di = que.top().second;
que.pop();
}else{
ans += fq.top();
fq.pop();
}
}
cout << ans << " ";
}
cout << endl;
}
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 1ms
memory: 7776kb
input:
5 10 14 17 37 59 65 53 73 68 177 160 111 10 177 5 193 2 30 3 63 2 339 3 263 5 178 2 190 9 23 10 328 10 200 9 8 3 391 6 230 12 9 152 306 86 88 324 59 18 14 42 260 304 55 3 50 2 170 1 252 7 811 1 713 7 215 10 201 4 926 8 319 19 20 182 74 180 201 326 243 195 31 170 263 284 233 48 166 272 281 179 116 31...
output:
-2596 -2559 -2506 -2447 -2382 -2314 -2241 -2130 -1970 -1793 -3505 -3491 -3473 -3431 -3376 -3317 -3231 -3143 -2883 -2579 -2273 -1949 -6527 -6496 -6448 -6374 -6258 -6092 -5922 -5743 -5563 -5368 -5167 -4934 -4691 -4428 -4156 -3875 -3591 -3272 -2946 -3219 -2987 -2572 -2140 -1707 -1238 -768 -274 243 1...
result:
ok 70 numbers
Test #2:
score: 0
Accepted
time: 0ms
memory: 7764kb
input:
2 5 2 1 2 3 4 5 3 1 4 2 7 3 4 3 1 10 3 8 6 4 9 3 8 4 5
output:
-2 0 3 7 12 -21 -18 -15 -11 -5 3 13
result:
ok 12 numbers
Test #3:
score: 0
Accepted
time: 1ms
memory: 7768kb
input:
8 1 0 72916 9 11 130289 240521 653024 625847 679075 529899 486802 540872 353600 2 5400 2 257841 6 48161 3 71484 9 156788 3 181910 4 45589 6 210869 5 70426 9 87059 5 115764 8 7 634608 412120 360938 425426 825551 138578 678304 747502 2 235317 4 281859 5 553042 8 295615 8 32014 8 755313 4 439284 19 10 ...
output:
72916 -1121002 -880481 -526881 -40079 489820 1030692 1656539 2309563 2988638 -2180324 -2041746 -1680808 -1255382 -620774 57530 805032 1630583 -1025384 -1022941 -1018403 -1013731 -1006580 -998875 -987675 -970496 -953098 -932654 -909692 -886331 -862054 -835158 -807901 -779123 -747157 -713222 -67928...
result:
ok 85 numbers
Test #4:
score: 0
Accepted
time: 1ms
memory: 7716kb
input:
5 18 24 561699155 345484852 420718917 108291879 553918474 392861085 299874093 28528146 248352314 398850144 248444258 89834833 251398697 101739017 240342391 320200928 481962939 343719433 5 354704 6 9355942 7 7098134 16 38746862 15 35848885 14 42058214 15 18411581 9 23207206 18 19518309 14 20707458 13...
output:
-416165974 -387637828 -297802995 -196063978 44278413 292630727 541074985 792473682 1079767658 1379641751 1699842679 2043562112 2436423197 2835273341 3255992258 3737955197 4291873671 4853572826 335919368 705602908 146524143 438492672 -3870833640 -3817930784 -3749728771 -3627446160 -3471700060 -322...
result:
ok 39 numbers
Test #5:
score: -100
Wrong Answer
time: 1ms
memory: 7792kb
input:
9 30 20 150 250 278 8 74 295 357 116 543 287 37 345 14 173 153 407 136 269 121 109 318 401 280 500 267 257 238 312 225 477 10 293 13 162 29 145 13 120 2 17 3 192 21 70 7 102 1 286 18 50 1 296 3 308 21 24 13 118 8 22 9 52 21 156 11 258 9 263 23 234 13 20 145 133 51 146 103 103 44 154 173 68 171 13 6 ...
output:
-3018 -3010 -2996 -2959 -2885 -2776 -2660 -2539 -2403 -2250 -2077 -1852 -1614 -1364 -1107 -840 -571 -293 -13 274 569 881 1199 1544 1901 2302 2709 3186 3686 4229 -3232 -3226 -3213 -3169 -3118 -3050 -2947 -2844 -2699 -2553 -2399 -2228 -2055 -23341 -23339 -23319 -23279 -23197 -23103 -22992 -22875 -22...
result:
wrong answer 256th numbers differ - expected: '-7980', found: '-7978'