Advertisement
Guest User

Untitled

a guest
Jun 15th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. int a, b, c, d, e, f;
  3. std::vector<std::tuple<long double, int, int>> vec;
  4. void dfs(int water, int sugar, int limit) {
  5. std::cout << "water:" << water <<"," << "sugar:" <<sugar << std::endl;
  6. if (water+sugar > limit) { //溶液の質量がビーカーより大きい
  7. return;
  8. }
  9. if (sugar > (water/100)*e) { // 砂糖が溶け残る
  10. return;
  11. }
  12. long double density = 100*sugar/(water+sugar); // 密度(濃度を計算)
  13. vec.push_back(std::make_tuple(density, water, sugar)); // vecに格納
  14. dfs(water+100*a, sugar, limit);
  15. dfs(water+100*b, sugar, limit);
  16. dfs(water, sugar+c, limit);
  17. dfs(water, sugar+d, limit);
  18. }
  19.  
  20. int main() {
  21. std::cin >> a >> b >> c >> d >> e >> f;
  22. dfs(100*a, 0, f);
  23. dfs(100*b, 0, f);
  24. auto e = *std::max_element(vec.begin(), vec.end()); //一番濃度の高いvecを取得。
  25. std::cout << std::get<1>(e) + std::get<2>(e) << " " << std::get<2>(e) << std::endl;
  26. }
  27.  
  28. A B C D E F
  29.  
  30. 1 2 10 20 15 200
  31.  
  32. 110 10
  33.  
  34. 1 2 1 2 100 1000
  35.  
  36. 200 100
  37.  
  38. 17 19 22 26 55 2802
  39.  
  40. 2634 934
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement