fork download
  1. class Solution {
  2. public:
  3. int shoppingOffers(vector<int>& price, vector<vector<int>>& special, vector<int>& needs) {
  4.  
  5. return minCost(price,special,needs,0,0);
  6.  
  7. }
  8.  
  9. int minCost( vector<int> & price,vector<vector<int>>& special, vector<int>& needs, int index, int currCost ) {
  10.  
  11. if ( index == special.size()) {
  12. for ( int i=0; i<needs.size(); i++ )
  13. currCost += (needs[i]*price[i]);
  14. return currCost;
  15. }
  16.  
  17. // either use the i'th offer or dont use it
  18. int p = INT_MAX;
  19. p = minCost(price,special,needs,index+1, currCost);
  20.  
  21. // check if we can use it or not
  22. bool f = 0;
  23. for ( int i=0; i<special[index].size()-1; i++ ) {
  24. if ( needs[i] < special[index][i] ) {
  25. f=1;
  26. break;
  27. }
  28. }
  29.  
  30. if ( f ) {
  31. // we cannot use the offer
  32. } else {
  33. // we can use it
  34. vector<int> newNeed;
  35. for ( int i=0; i<special[index].size()-1; i++ ) {
  36. newNeed.push_back(needs[i] - special[index][i]);
  37. }
  38. p = min(p,minCost(price,special,newNeed, index+1, currCost+special[index][special[index].size()-1]));
  39. // using the same offer again
  40. p = min(p,minCost(price,special,newNeed, index, currCost+special[index][special[index].size()-1]));
  41. }
  42.  
  43. return p;
  44. }
  45. };
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:3:24: error: ‘vector’ has not been declared
     int shoppingOffers(vector<int>& price, vector<vector<int>>& special, vector<int>& needs) {
                        ^~~~~~
prog.cpp:3:30: error: expected ‘,’ or ‘...’ before ‘<’ token
     int shoppingOffers(vector<int>& price, vector<vector<int>>& special, vector<int>& needs) {
                              ^
prog.cpp:9:18: error: ‘vector’ has not been declared
     int minCost( vector<int> & price,vector<vector<int>>& special, vector<int>& needs, int index, int currCost ) {
                  ^~~~~~
prog.cpp:9:24: error: expected ‘,’ or ‘...’ before ‘<’ token
     int minCost( vector<int> & price,vector<vector<int>>& special, vector<int>& needs, int index, int currCost ) {
                        ^
prog.cpp: In member function ‘int Solution::shoppingOffers(int)’:
prog.cpp:5:24: error: ‘price’ was not declared in this scope
         return minCost(price,special,needs,0,0);
                        ^~~~~
prog.cpp:5:30: error: ‘special’ was not declared in this scope
         return minCost(price,special,needs,0,0);
                              ^~~~~~~
prog.cpp:5:38: error: ‘needs’ was not declared in this scope
         return minCost(price,special,needs,0,0);
                                      ^~~~~
prog.cpp: In member function ‘int Solution::minCost(int)’:
prog.cpp:11:14: error: ‘index’ was not declared in this scope
         if ( index == special.size()) {
              ^~~~~
prog.cpp:11:23: error: ‘special’ was not declared in this scope
         if ( index == special.size()) {
                       ^~~~~~~
prog.cpp:12:30: error: ‘needs’ was not declared in this scope
             for ( int i=0; i<needs.size(); i++ )
                              ^~~~~
prog.cpp:13:17: error: ‘currCost’ was not declared in this scope
                 currCost += (needs[i]*price[i]);
                 ^~~~~~~~
prog.cpp:13:39: error: ‘price’ was not declared in this scope
                 currCost += (needs[i]*price[i]);
                                       ^~~~~
prog.cpp:14:20: error: ‘currCost’ was not declared in this scope
             return currCost;
                    ^~~~~~~~
prog.cpp:18:17: error: ‘INT_MAX’ was not declared in this scope
         int p = INT_MAX;
                 ^~~~~~~
prog.cpp:19:21: error: ‘price’ was not declared in this scope
         p = minCost(price,special,needs,index+1, currCost);
                     ^~~~~
prog.cpp:19:27: error: ‘special’ was not declared in this scope
         p = minCost(price,special,needs,index+1, currCost);
                           ^~~~~~~
prog.cpp:19:35: error: ‘needs’ was not declared in this scope
         p = minCost(price,special,needs,index+1, currCost);
                                   ^~~~~
prog.cpp:19:41: error: ‘index’ was not declared in this scope
         p = minCost(price,special,needs,index+1, currCost);
                                         ^~~~~
prog.cpp:19:50: error: ‘currCost’ was not declared in this scope
         p = minCost(price,special,needs,index+1, currCost);
                                                  ^~~~~~~~
prog.cpp:34:13: error: ‘vector’ was not declared in this scope
             vector<int> newNeed;
             ^~~~~~
prog.cpp:34:20: error: expected primary-expression before ‘int’
             vector<int> newNeed;
                    ^~~
prog.cpp:36:17: error: ‘newNeed’ was not declared in this scope
                 newNeed.push_back(needs[i] - special[index][i]);
                 ^~~~~~~
prog.cpp:38:45: error: ‘newNeed’ was not declared in this scope
             p = min(p,minCost(price,special,newNeed, index+1, currCost+special[index][special[index].size()-1]));
                                             ^~~~~~~
prog.cpp:38:112: error: ‘min’ was not declared in this scope
             p = min(p,minCost(price,special,newNeed, index+1, currCost+special[index][special[index].size()-1]));
                                                                                                                ^
stdout
Standard output is empty