Hujifa

C++ STL vs Pure C

Apr 9th, 2022 (edited)
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.14 KB | None | 0 0
  1. --------------------- C++ STL Solution---------------------------
  2. #include <bits/stdc++.h>
  3.  
  4. using namespace std;
  5.  
  6. int main(){
  7.  
  8.     int t;
  9.     cin >> t;
  10.  
  11.     while(t--){
  12.  
  13.         int n , k  , input ;
  14.         cin >> n >> k;
  15.  
  16.         vector<int> a , b;
  17.         vector< pair<int,int> > v;
  18.         for ( int i = 0; i < n ; i++ ) cin >> input , a.push_back(input);
  19.         for ( int i = 0; i < n ; i++ ) cin >> input , b.push_back(input);
  20.         for ( int i = 0; i < n ; i++ ) v.push_back( {a[i], b[i]} );
  21.         sort ( v.begin(), v.end() );
  22.  
  23.         for ( int i = 0; i < n ; i++ ){
  24.             if ( v[i].first <= k   ) k += v[i].second;
  25.             else break;
  26.         }
  27.  
  28.         cout << k << endl;
  29.     }
  30.  
  31.     return 0;
  32.  
  33. }
  34.  
  35.  
  36. -----------------Pure C Solution-------------------
  37. #include <iostream>
  38.  
  39. using namespace std;
  40.  
  41. struct Pair {
  42.     int first;
  43.     int second;
  44. };
  45.  
  46.  
  47. void bubbleSort(Pair pair[], int size) {
  48.  
  49.   for (int step = 0; step < size; step++ ) {
  50.    
  51.     int swapped = 0;
  52.     for ( int i = 0; i < size-step-1; ++i) {
  53.       if ( pair[i].first > pair[i+1].first ) {
  54.         Pair temp = pair[i];
  55.         pair[i] = pair[i+1];
  56.         pair[i+1] = temp;
  57.         swapped = 1;
  58.       }
  59.     }
  60.    
  61.     if (swapped == 0) break;
  62.   }
  63.  
  64. }
  65.  
  66.  
  67. int main(){
  68.  
  69.     int t;
  70.     cin >> t;
  71.  
  72.     while(t--){
  73.  
  74.         int n,k;
  75.         cin >> n >> k;
  76.         const size_t size = n;
  77.  
  78.         int* a = (int*) calloc( size, sizeof(int) );
  79.         int* b = (int*) calloc( size, sizeof(int) );
  80.  
  81.         for ( int i = 0, input ; i < size ; i++ ) cin >> input, a[i] = input;
  82.         for ( int i = 0, input ; i < size ; i++ ) cin >> input, b[i] = input;
  83.  
  84.         Pair* pair = (Pair* ) malloc(size*sizeof(Pair));
  85.         for ( int i = 0 ; i < size ; i++ ){
  86.             Pair p = { *(a+i), *(b+i) };
  87.             pair[i] = p;
  88.         }
  89.         free(a);
  90.         free(b);
  91.  
  92.         bubbleSort(pair, size);
  93.  
  94.         for ( int i = 0; i < size ; i++ ){
  95.             if ( pair[i].first <= k ) k += pair[i].second;
  96.             else break;
  97.         }
  98.    
  99.         cout << k << endl;
  100.         free(pair);
  101.     }
  102.  
  103.     return 0;
  104. }
Add Comment
Please, Sign In to add comment