Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Basic info
- Problem : LA6940
- Date : 19-01-19
- Author : Shesher
- */
- #include<bits/stdc++.h>
- using namespace std;
- ///Template
- #define in1() freopen("C:\\Users\\SHESHER\\Rest\\Desktop\\MY COMPUTER\\Code\\Template\\input.txt", "r", stdin);
- #define out1() freopen("C:\\Users\\SHESHER\\Rest\\Desktop\\MY COMPUTER\\Code\\Template\\output.txt", "w", stdout);
- //Data types
- #define lo long
- #define ll long long
- #define llu unsigned long long
- //loop
- #define f1(i,x,y) for(int i=x;i<=y;i++)
- //Constants
- #define MAX 100007
- #define MOD 10000007
- #define PI acos(-1.0)
- //STL
- #define vout(v) for(int i=0;i<v.size();i++){cout<<v[i]; if(i==v.size()-1) cout<<endl; else cout<<" ";}
- //Scan
- #define sc(x) scanf("%d", &x)
- #define scl(x) scanf("%lld", &x)
- //Print
- #define pa(a,i,n) for(int i=0;i<n;i++){ cout<<a[i]; if(i==n-1) cout<<endl; else cout<<" ";}
- struct info
- {
- int g, a, b;
- int idx;
- };
- bool cmp(struct info x, struct info y)
- {
- if(x.a==y.a) return x.b<y.b;
- else return x.a>y.a;
- }
- double am[100100];
- int main()
- {
- // in1();
- // out1();
- int n;
- double la, lb;
- while(cin>>n>>la>>lb){
- struct info ig[n+2];
- for(int i=0;i<n;i++){
- cin>>ig[i].g>>ig[i].a>>ig[i].b;
- ig[i].idx=i;
- }
- double lla=la, llb=lb;
- memset(am,0,sizeof(am));
- sort(ig,ig+n,cmp);
- double hp=0, sd=0;
- vector<double> ing;
- for(int i=0;i<n;i++){
- if((ig[i].b*ig[i].g)<=lb){
- hp+=ig[i].a*ig[i].g;
- sd+=ig[i].b*ig[i].g;
- am[ig[i].idx]=ig[i].g;
- // ing.push_back(ig[i].g);
- lb-=(ig[i].b*ig[i].g);
- }
- else{
- // cout<<lb<<endl;
- double temp=(lb/ig[i].b);
- // cout<<temp<<endl;
- hp+=ig[i].a*temp;
- sd+=ig[i].b*temp;
- am[ig[i].idx]=temp;
- // ing.push_back(temp);
- break;
- }
- }
- if(hp<la) cout<<-1<<" "<<-1<<endl;
- else{
- cout<<hp<<" "<<sd<<endl;
- for(int i=0;i<n;i++){
- cout<<am[i];
- if(i==n-1) cout<<endl;
- else cout<<" ";
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement