Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <algorithm>
- #include <iostream>
- #include <sstream>
- #include <string>
- #include <vector>
- #include <queue>
- #include <set>
- #include <map>
- #include <cstdio>
- #include <cstdlib>
- #include <cctype>
- #include <cmath>
- using namespace std;
- typedef long long LL;
- #define FOR(k,a,b) for(int k(a); k < (b); ++k)
- #define REP(k,a) for(int k=0; k < (a); ++k)
- class BuyingFlowers {
- public:
- int buy(vector <int> roses, vector <int> lilies) {
- vector<int> bestChoice(320001,20000000);
- REP(i,320001)
- {
- for(int j=1;j*j<=i;++j)
- if(!(i%j))
- {
- bestChoice[i]=(i/j-j);
- }
- }
- int res=-1;
- int n=roses.size();
- FOR(i,1,1<<n)
- {
- int roseNum=0,LilNum=0;
- REP(j,n)
- {
- if(1<<j & i)
- {
- roseNum+=roses[j];
- LilNum+=lilies[j];
- }
- }
- if(abs(roseNum-LilNum)<2 && (bestChoice[roseNum+LilNum]<res || res==-1))
- {
- res=bestChoice[roseNum+LilNum];
- }
- }
- return res;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment