QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#704621 | #9529. Farm Management | ucup-team1196 | WA | 0ms | 3816kb | C++20 | 2.6kb | 2024-11-02 20:26:09 | 2024-11-02 20:26:10 |
Judging History
answer
/*
_/ _/
_/_/ _/_/_/ _/_/_/ _/_/_/ _/ _/_/ _/_/_/
_/ _/ _/ _/ _/ _/ _/ _/_/ _/ _/ _/
_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
_/_/ _/_/_/ _/ _/ _/_/_/ _/ _/ _/ _/
*/
#include<bits/stdc++.h>
#define int long long
using namespace std;
void solve(){
int n,k;
cin>>n>>k;
vector<array<int,3>>a(n);
for(auto &[x,y,z]:a) cin>>x>>y>>z;
sort(a.begin(),a.end(),greater());
int tmp=0;
vector<int>use(n);
for(int i=0;i<n;++i) use[i]=a[i][2],tmp+=use[i];
for(int i=n-1;i>=0;--i){
int x=a[i][2]-a[i][1];
if(tmp-x>k){
tmp-=x;
use[i]=a[i][1];
}
else{
use[i]-=tmp-k;
tmp=i;
break;
}
}
vector<int>s(n);
s[0]=use[0]*a[0][0];
for(int i=1;i<n;++i) s[i]=s[i-1]+use[i]*a[i][0];
vector<int>ma(n),mi(n),sl(n),sr(n);
ma[0]=a[0][0]*a[0][2];
mi[0]=a[0][0]*a[0][1];
sl[0]=a[0][1];
sr[0]=a[0][2];
for(int i=1;i<n;++i) ma[i]=ma[i-1]+a[i][2]*a[i][0];
for(int i=1;i<n;++i) mi[i]=mi[i-1]+a[i][1]*a[i][0];
for(int i=1;i<n;++i) sl[i]=sl[i-1]+a[i][1];
for(int i=1;i<n;++i) sr[i]=sr[i-1]+a[i][2];
int res=0;
for(int i=0;i<=tmp;++i){
int ans=0;
if(i) ans+=ma[i-1];
int rem=k;
if(i) rem-=sr[i-1];
rem-=sl[n-1]-sl[i];
ans+=mi[n-1]-mi[i];
ans+=rem*a[i][0];
res=max(res,ans);
}
for(int i=tmp+1;i<n;++i){
int ans=0;
int rem=k;
rem-=sl[n-1]-sl[i];
ans+=mi[n-1]-mi[i];
int l=tmp-1,r=i-1;
auto check=[&](int x)->bool{
if(sr[x]+sl[i-1]-sl[x]<=rem) return 1;
else return 0;
};
while(l<r){
int mid=l+r+1>>1;
if(check(mid)) l=mid;
else r=mid-1;
}
if(l==i-1){
ans+=ma[l];
rem-=sr[l];
ans+=rem*a[i][0];
}
else{
if(l!=-1) ans+=ma[l];
if(l!=-1) rem-=sr[l];
ans+=mi[i-1];
if(l!=-1) ans-=mi[l];
rem-=sl[i-1];
if(l!=-1) rem-=sl[l];
ans+=rem*a[l+1][0];
}
res=max(res,ans);
}
cout<<res<<"\n";
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
int t=1;
// cin>>t;
while(t--) solve();
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3540kb
input:
5 17 2 3 4 6 1 5 8 2 4 4 3 3 7 5 5
output:
109
result:
ok single line: '109'
Test #2:
score: 0
Accepted
time: 0ms
memory: 3596kb
input:
12 62 503792 9 10 607358 1 3 600501 10 10 33249 4 4 774438 6 6 197692 3 6 495807 8 8 790225 5 9 77272 3 8 494819 4 9 894779 3 9 306279 5 6
output:
35204500
result:
ok single line: '35204500'
Test #3:
score: 0
Accepted
time: 0ms
memory: 3532kb
input:
15 32 835418 2 3 178262 1 3 527643 2 2 519710 1 1 774544 3 3 82312 1 1 808199 1 1 809396 1 3 255882 1 3 80467 1 3 874973 1 3 813965 1 2 198275 1 2 152356 1 3 802055 1 1
output:
22000255
result:
ok single line: '22000255'
Test #4:
score: 0
Accepted
time: 0ms
memory: 3616kb
input:
13 20 526447 1 1 807398 2 2 4167 1 2 944031 2 2 830685 2 2 394251 1 2 505011 1 2 968848 1 1 58170 1 3 32504 1 1 792273 3 3 196120 1 2 714507 1 1
output:
12878768
result:
ok single line: '12878768'
Test #5:
score: 0
Accepted
time: 0ms
memory: 3812kb
input:
13 32 582584 1 3 335440 3 3 971984 1 2 864169 1 2 528515 1 1 382399 1 2 459855 1 2 406909 2 3 66780 2 3 885118 3 3 434844 1 2 93331 1 3 502509 1 3
output:
22065034
result:
ok single line: '22065034'
Test #6:
score: 0
Accepted
time: 0ms
memory: 3784kb
input:
12 77 30244 1 7 518214 3 8 486001 8 9 152634 2 3 180255 3 4 791887 1 6 635820 2 9 881171 3 5 337905 3 8 683182 5 5 300786 3 6 339094 7 9
output:
50453764
result:
ok single line: '50453764'
Test #7:
score: -100
Wrong Answer
time: 0ms
memory: 3816kb
input:
10 3923726 826284 215861 638800 471693 146746 886003 140800 532315 684546 673434 604071 814259 170671 299465 525449 104262 689547 855391 215333 591975 803421 795321 31606 984783 103838 361911 601318 145693 450227 686945
output:
1369583505449
result:
wrong answer 1st lines differ - expected: '1597735409747', found: '1369583505449'