#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
template < class S, class T> inline S min_L( S a,T b) {
return a<= b? a: b;
}
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
class Solution{
public :
int maximumUnits( vector< vector< int >> & boxTypes, int truckSize) {
int i;
int res = 0 ;
int cnt[ 1001 ] = { } ;
int k;
for ( i= ( 0 ) ; i< ( boxTypes.size ( ) ) ; i++ ) {
cnt[ boxTypes[ i] [ 1 ] ] + = boxTypes[ i] [ 0 ] ;
}
for ( i= ( 1001 ) - 1 ; i>= ( 0 ) ; i-- ) {
k = min_L( truckSize, cnt[ i] ) ;
res + = k * i;
truckSize - = k;
}
return res;
}
}
;
// cLay version 20210103-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// class Solution {
// public:
// int maximumUnits(vector<vector<int>>& boxTypes, int truckSize) {
// int res = 0, cnt[1001] = {}, k;
// rep(i,boxTypes.size()) cnt[boxTypes[i][1]] += boxTypes[i][0];
// rrep(i,1001){
// k = min(truckSize, cnt[i]);
// res += k * i;
// truckSize -= k;
// }
// return res;
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnRlbXBsYXRlPGNsYXNzIFMsIGNsYXNzIFQ+IGlubGluZSBTIG1pbl9MKFMgYSxUIGIpewogIHJldHVybiBhPD1iP2E6YjsKfQojZGVmaW5lIG1haW4gZHVtbXlfbWFpbgppbnQgbWFpbigpewogIHJldHVybiAwOwp9CiN1bmRlZiBtYWluCmNsYXNzIFNvbHV0aW9uewogIHB1YmxpYzoKICBpbnQgbWF4aW11bVVuaXRzKHZlY3Rvcjx2ZWN0b3I8aW50Pj4mIGJveFR5cGVzLCBpbnQgdHJ1Y2tTaXplKXsKICAgIGludCBpOwogICAgaW50IHJlcyA9IDA7CiAgICBpbnQgY250WzEwMDFdID0ge307CiAgICBpbnQgazsKICAgIGZvcihpPSgwKTtpPChib3hUeXBlcy5zaXplKCkpO2krKyl7CiAgICAgIGNudFtib3hUeXBlc1tpXVsxXV0gKz0gYm94VHlwZXNbaV1bMF07CiAgICB9CiAgICBmb3IoaT0oMTAwMSktMTtpPj0oMCk7aS0tKXsKICAgICAgayA9bWluX0wodHJ1Y2tTaXplLCBjbnRbaV0pOwogICAgICByZXMgKz0gayAqIGk7CiAgICAgIHRydWNrU2l6ZSAtPSBrOwogICAgfQogICAgcmV0dXJuIHJlczsKICB9Cn0KOwovLyBjTGF5IHZlcnNpb24gMjAyMTAxMDMtMQoKLy8gLS0tIG9yaWdpbmFsIGNvZGUgLS0tCi8vICNkZWZpbmUgbWFpbiBkdW1teV9tYWluCi8vIHt9Ci8vICN1bmRlZiBtYWluCi8vIAovLyBjbGFzcyBTb2x1dGlvbiB7Ci8vIHB1YmxpYzoKLy8gICBpbnQgbWF4aW11bVVuaXRzKHZlY3Rvcjx2ZWN0b3I8aW50Pj4mIGJveFR5cGVzLCBpbnQgdHJ1Y2tTaXplKSB7Ci8vICAgICBpbnQgcmVzID0gMCwgY250WzEwMDFdID0ge30sIGs7Ci8vICAgICByZXAoaSxib3hUeXBlcy5zaXplKCkpIGNudFtib3hUeXBlc1tpXVsxXV0gKz0gYm94VHlwZXNbaV1bMF07Ci8vICAgICBycmVwKGksMTAwMSl7Ci8vICAgICAgIGsgPSBtaW4odHJ1Y2tTaXplLCBjbnRbaV0pOwovLyAgICAgICByZXMgKz0gayAqIGk7Ci8vICAgICAgIHRydWNrU2l6ZSAtPSBrOwovLyAgICAgfQovLyAgICAgcmV0dXJuIHJlczsKLy8gICB9Ci8vIH07Cg==