Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define INF 0x3f3f3f3f
- using namespace std;
- int main() {
- string s;
- cin >> s;
- int p = 0, price = 0;
- while(isdigit(s[p]))
- price = price * 10 + (s[p++] - '0');
- ++p;
- int buy_now = 0;
- while(isdigit(s[p]))
- buy_now = buy_now * 10 + (s[p++] - '0');
- if(buy_now == 0)
- buy_now = INF;
- int N = s.size();
- cout << "-," << price;
- string last = "-";
- int highest = price;
- unordered_map < string , int > M;
- for(int i = p + 1; i < N; ++i) {
- int j = i;
- string word;
- while(isalpha(s[j]) || isdigit(s[j]))
- word.push_back(s[j++]);
- ++j;
- int bid = 0;
- while(isdigit(s[j]))
- bid = bid * 10 + (s[j++] - '0');
- bool ok = true;
- if(bid > highest) {
- highest = bid;
- if(word == last)
- ok = false;
- last = word;
- }
- if(last == "-")
- ok = false;
- if(ok)
- cout << ',' << last << ',';
- M[word] = bid;
- int mx1 = 0, mx2 = 0;
- for(auto it : M)
- if(it.second > mx1) {
- mx2 = mx1;
- mx1 = it.second;
- }
- else
- if(it.second > mx2)
- mx2 = it.second;
- int val = mx2;
- if(val != mx1)
- ++val;
- if(price < val)
- price = val;
- if(ok) {
- bool flag = false;
- if(price >= buy_now) {
- flag = true;
- price = buy_now;
- }
- cout << price;
- if(flag)
- break;
- }
- i = j;
- }
- }
Add Comment
Please, Sign In to add comment