QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#141174 | #6532. Trading | cy1999 | AC ✓ | 254ms | 4944kb | C++ | 797b | 2023-08-17 09:11:38 | 2023-08-17 09:11:49 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define int long long
int const maxn = 1e5+10;;
struct node{
int a,b;
}p[maxn];
bool cmp(node y,node x){
return y.a < x.a;
}
signed main(){
int t;
cin >> t ;
while(t--){
int n;
cin >> n ;
int sum = 0;
for(int i = 1;i <= n;i ++){
cin >> p[i].a >> p[i].b;
sum += p[i].b;
}
int ans = 0;
sort(p+1,p+n+1,cmp);
int k = sum/2;
for(int i = 1;i <= n;i ++){
if(k==0){
ans += p[i].a*p[i].b;
}else {
if(p[i].b <= k){
ans -= p[i].a*p[i].b;
k-=p[i].b;
}else {
if(sum%2){
ans += p[i].a*(p[i].b -k - 1);
}else {
ans += p[i].a*(p[i].b-k);
}
ans-= p[i].a*k;
k = 0;
}
}
}
cout << ans<<'\n';
}
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 1ms
memory: 3452kb
input:
2 4 10 2 30 7 20 4 50 1 2 1 100 1 1000
output:
100 0
result:
ok 2 number(s): "100 0"
Test #2:
score: 0
Accepted
time: 254ms
memory: 3456kb
input:
100000 8 567091 283679 875020 918237 314684 148083 456411 304598 766056 882388 135371 326501 578773 250140 221306 874117 5 126777 129517 846433 679825 649281 330021 427768 362636 390068 692169 5 657677 231119 941936 991342 901241 15133 660372 970476 698958 209343 10 478657 163635 752788 819629 82110...
output:
974212656325 422801098045 290923055490 905027520640 1029190811448 678507966352 198954424176 854342493784 14257598794 988991921252 588571689752 736448232231 1193610112068 190497179448 0 931985141715 607845823133 684919543290 764055201744 1066998333316 404829201204 908985930972 518916157132 0 18970544...
result:
ok 100000 numbers
Test #3:
score: 0
Accepted
time: 174ms
memory: 3576kb
input:
1000 943 72269 378475 977924 359650 767015 807123 588692 74765 415453 560758 928758 428092 806008 738436 208619 75109 42177 669012 962462 479504 590660 677629 539374 152571 248543 325297 781505 297957 16148 319989 551104 444452 227850 215480 851246 491844 513358 739037 788832 628842 60861 351413 302...
output:
114201255531485 53276337328736 92046111258743 103154270867625 105744931013248 32643398141462 88110706162215 47935111239811 15241903293912 111168188920159 40432059191865 31710483882560 76824850524735 5062330895031 699195293530 102704425622910 62567748918438 111989972317852 70973066348865 748113762268...
result:
ok 1000 numbers
Test #4:
score: 0
Accepted
time: 186ms
memory: 4944kb
input:
10 3648 321905 608337 913130 232679 807842 182580 108666 826799 649762 754578 461310 612685 351739 113156 227668 993674 779322 394130 762123 235998 591912 252590 648451 525516 758596 858327 444142 632425 993345 476968 987323 970898 664888 739790 582325 596631 537216 606677 30160 316873 32104 109750 ...
output:
456752959290141 11993792944026063 11554678993093858 9453515389111085 8600545413208495 5664061450260769 2045423469498213 7668923751962719 2600263474973873 3635314464114077
result:
ok 10 numbers