fork download
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <cstdio>
  4. using namespace std;
  5.  
  6. struct Piece {
  7. double f;
  8. double m;
  9. int pos;
  10. };
  11. bool compare(Piece p1, Piece p2) {
  12. return(p1.f / p1.m) > (p2.f / p2.m);
  13. }
  14. bool sortPos(Piece p1, Piece p2) {
  15. return(p1.pos < p2.pos);
  16. }
  17. int main() {
  18. freopen("sboost.in", "r", stdin);
  19. freopen("sboost.out", "w", stdout);
  20. int F, M, N; cin>>F>>M>>N;
  21. Piece array[N];
  22. for(int i = 0; i < N; i++) {
  23. cin>>array[i].f>>array[i].m;
  24. array[i].pos = i + 1;
  25. }
  26. sort(array, array + N, compare);
  27. double preF = F, preM = M;
  28. int lastIndex = 0;
  29. for(int i = 0; i < N; i++) {
  30. if((preF + array[i].f) / (preM + array[i].m) < preF / preM) {
  31. break;
  32. }
  33. lastIndex++;
  34. preF += array[i].f;
  35. preM += array[i].m;
  36. }
  37. if(lastIndex == 0) {
  38. cout<<"NONE";
  39. }
  40. sort(array, array + lastIndex, sortPos);
  41. for(int i = 0; i < lastIndex; i++) {
  42. cout<<array[i].pos<<endl;
  43. }
  44. }
Success #stdin #stdout 0s 4376KB
stdin
Standard input is empty
stdout
Standard output is empty