Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --------------------- C++ STL Solution---------------------------
- #include <bits/stdc++.h>
- using namespace std;
- int main(){
- int t;
- cin >> t;
- while(t--){
- int n , k , input ;
- cin >> n >> k;
- vector<int> a , b;
- vector< pair<int,int> > v;
- for ( int i = 0; i < n ; i++ ) cin >> input , a.push_back(input);
- for ( int i = 0; i < n ; i++ ) cin >> input , b.push_back(input);
- for ( int i = 0; i < n ; i++ ) v.push_back( {a[i], b[i]} );
- sort ( v.begin(), v.end() );
- for ( int i = 0; i < n ; i++ ){
- if ( v[i].first <= k ) k += v[i].second;
- else break;
- }
- cout << k << endl;
- }
- return 0;
- }
- -----------------Pure C Solution-------------------
- #include <iostream>
- using namespace std;
- struct Pair {
- int first;
- int second;
- };
- void bubbleSort(Pair pair[], int size) {
- for (int step = 0; step < size; step++ ) {
- int swapped = 0;
- for ( int i = 0; i < size-step-1; ++i) {
- if ( pair[i].first > pair[i+1].first ) {
- Pair temp = pair[i];
- pair[i] = pair[i+1];
- pair[i+1] = temp;
- swapped = 1;
- }
- }
- if (swapped == 0) break;
- }
- }
- int main(){
- int t;
- cin >> t;
- while(t--){
- int n,k;
- cin >> n >> k;
- const size_t size = n;
- int* a = (int*) calloc( size, sizeof(int) );
- int* b = (int*) calloc( size, sizeof(int) );
- for ( int i = 0, input ; i < size ; i++ ) cin >> input, a[i] = input;
- for ( int i = 0, input ; i < size ; i++ ) cin >> input, b[i] = input;
- Pair* pair = (Pair* ) malloc(size*sizeof(Pair));
- for ( int i = 0 ; i < size ; i++ ){
- Pair p = { *(a+i), *(b+i) };
- pair[i] = p;
- }
- free(a);
- free(b);
- bubbleSort(pair, size);
- for ( int i = 0; i < size ; i++ ){
- if ( pair[i].first <= k ) k += pair[i].second;
- else break;
- }
- cout << k << endl;
- free(pair);
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment