Advertisement
Guest User

Untitled

a guest
Oct 19th, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.28 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4. const long long minuT = 10800;
  5. long long l, m;
  6. struct kos {
  7. string s;
  8. long long p,c,t,r,ind;
  9. kos () {
  10. p = 0;
  11. c = 0;
  12. t = 0;
  13. r = 0;
  14. }
  15. }kosilice[200];
  16.  
  17. bool dobre[200];
  18.  
  19. int main() {
  20.  
  21. scanf("%lld %lld\n", &l, &m);
  22.  
  23. for (long long i = 0; i < m; i++) {
  24. string s;
  25. getline(cin, s);
  26.  
  27. kosilice[i].ind = i;
  28. long long j = s.size() - 1;
  29. long long pot10 = 1;
  30. while (s[j] != ',') {
  31. kosilice[i].r += (long long)(s[j] - '0') * pot10;
  32. pot10 *= (long long)10;
  33. j--;
  34. }
  35.  
  36. j--;
  37. pot10 = 1;
  38. while(s[j] != ',') {
  39. kosilice[i].t += (long long)(s[j] - '0') * pot10;
  40. pot10 *= (long long)10;
  41. j--;
  42. }
  43.  
  44. j--;
  45. pot10 = 1;
  46. while(s[j] != ',') {
  47. kosilice[i].c += (long long)(s[j] - '0') * pot10;
  48. pot10 *= (long long)10;
  49. j--;
  50. }
  51.  
  52. j--;
  53. pot10 = 1;
  54. while(s[j] != ',') {
  55. kosilice[i].p += (long long)(s[j] - '0') * pot10;
  56. pot10 *= (long long)10;
  57. j--;
  58. }
  59. kosilice[i].s = s.substr(0, j);
  60.  
  61. //cout << kosilice[i].s << ", " << kosilice[i].p << ", " << kosilice[i].c << ", " << kosilice[i].t << ", " << kosilice[i].r << endl;
  62. }
  63. for (int i = 0; i < m; i++) {
  64. int flag = 1;
  65. long long t = kosilice[i].t;
  66. long long r = kosilice[i].r;
  67. long long c = kosilice[i].c;
  68.  
  69. for (int T = 1; T < 25000; T++) {
  70. //cout << ((T * minuT)/(r + t) * t + min((T * minuT) % (r + t), t)) * c << '\n';
  71. if (((T * minuT)/(r + t) * t + min((T * minuT) % (r + t), t)) * c < l * T) {
  72. //cout << T << " " << i << endl;
  73. flag = 0;
  74. break;
  75. }
  76. }
  77. dobre[i] = flag;
  78. }
  79.  
  80. pair<long long, pair <long long, string>> p[200];
  81. int br = 0;
  82. int flag1 = 1;
  83. for (int i = 0; i < m; i++) {
  84. if (dobre[i]) {
  85. flag1 = 0;
  86. p[br].first = kosilice[i].p;
  87. p[br].second.first = kosilice[i].ind;
  88. p[br].second.second = kosilice[i].s;
  89. br++;
  90. }
  91. }
  92. if (flag1) {
  93. printf("no such mower\n");
  94. return 0;
  95. }
  96.  
  97. sort(p, p + br);
  98.  
  99. cout << p[0].second.second << '\n';
  100. for (int i = 1; i < br; i++) {
  101. if (p[i].first != p[i - 1].first) break;
  102. cout << p[i].second.second << '\n';
  103. }
  104.  
  105. return 0;
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement