Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- const long long minuT = 10800;
- long long l, m;
- struct kos {
- string s;
- long long p,c,t,r,ind;
- kos () {
- p = 0;
- c = 0;
- t = 0;
- r = 0;
- }
- }kosilice[200];
- bool dobre[200];
- int main() {
- scanf("%lld %lld\n", &l, &m);
- for (long long i = 0; i < m; i++) {
- string s;
- getline(cin, s);
- kosilice[i].ind = i;
- long long j = s.size() - 1;
- long long pot10 = 1;
- while (s[j] != ',') {
- kosilice[i].r += (long long)(s[j] - '0') * pot10;
- pot10 *= (long long)10;
- j--;
- }
- j--;
- pot10 = 1;
- while(s[j] != ',') {
- kosilice[i].t += (long long)(s[j] - '0') * pot10;
- pot10 *= (long long)10;
- j--;
- }
- j--;
- pot10 = 1;
- while(s[j] != ',') {
- kosilice[i].c += (long long)(s[j] - '0') * pot10;
- pot10 *= (long long)10;
- j--;
- }
- j--;
- pot10 = 1;
- while(s[j] != ',') {
- kosilice[i].p += (long long)(s[j] - '0') * pot10;
- pot10 *= (long long)10;
- j--;
- }
- kosilice[i].s = s.substr(0, j);
- //cout << kosilice[i].s << ", " << kosilice[i].p << ", " << kosilice[i].c << ", " << kosilice[i].t << ", " << kosilice[i].r << endl;
- }
- for (int i = 0; i < m; i++) {
- int flag = 1;
- long long t = kosilice[i].t;
- long long r = kosilice[i].r;
- long long c = kosilice[i].c;
- for (int T = 1; T < 25000; T++) {
- //cout << ((T * minuT)/(r + t) * t + min((T * minuT) % (r + t), t)) * c << '\n';
- if (((T * minuT)/(r + t) * t + min((T * minuT) % (r + t), t)) * c < l * T) {
- //cout << T << " " << i << endl;
- flag = 0;
- break;
- }
- }
- dobre[i] = flag;
- }
- pair<long long, pair <long long, string>> p[200];
- int br = 0;
- int flag1 = 1;
- for (int i = 0; i < m; i++) {
- if (dobre[i]) {
- flag1 = 0;
- p[br].first = kosilice[i].p;
- p[br].second.first = kosilice[i].ind;
- p[br].second.second = kosilice[i].s;
- br++;
- }
- }
- if (flag1) {
- printf("no such mower\n");
- return 0;
- }
- sort(p, p + br);
- cout << p[0].second.second << '\n';
- for (int i = 1; i < br; i++) {
- if (p[i].first != p[i - 1].first) break;
- cout << p[i].second.second << '\n';
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement