Task: | Coins |
Sender: | KnowYourArchitecture |
Submission time: | 2018-05-26 15:51:32 +0300 |
Language: | C++ |
Status: | READY |
Result: | TIME LIMIT EXCEEDED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.94 s | details |
#2 | TIME LIMIT EXCEEDED | -- | details |
#3 | TIME LIMIT EXCEEDED | -- | details |
#4 | ACCEPTED | 0.39 s | details |
#5 | ACCEPTED | 0.64 s | details |
Code
#include <bits/stdc++.h>using namespace std;typedef long long int ll;int main() {int n;cin >> n;set<int> stacks[2];stacks[0].insert(-1);stacks[1].insert(-1);for (int i = 0; i < n; i++) {int c, s;cin >> c >> s;s--;stacks[s].insert(c);auto it1 = stacks[0].rbegin();auto it2 = stacks[1].rbegin();if (*it1 > *it2) {// Stack 1 can be biggerbool res = true;while (it1 != stacks[0].rend() && it2 != stacks[1].rend()) {if (*it1 < *it2) {res = false;break;}it1++;it2++;}if (it2 != stacks[1].rend()) res = false;if (res) cout << ">\n";else cout << "?\n";} else {// Stack 2 can be biggerbool res = true;while (it1 != stacks[0].rend() && it2 != stacks[1].rend()) {if (*it1 > *it2) {res = false;break;}it1++;it2++;}if (it1 != stacks[0].rend()) res = false;if (res) cout << "<\n";else cout << "?\n";}}}
Test details
Test 1
Verdict: ACCEPTED
input |
---|
200000 175878 1 146174 1 4939 2 181388 1 ... |
correct output |
---|
> > > > > ... |
user output |
---|
> > > > > ... |
Test 2
Verdict: TIME LIMIT EXCEEDED
input |
---|
200000 1 2 2 1 3 2 4 1 ... |
correct output |
---|
< > < > < ... |
user output |
---|
(empty) |
Test 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
200000 1 1 2 1 3 1 4 1 ... |
correct output |
---|
> > > > > ... |
user output |
---|
(empty) |
Test 4
Verdict: ACCEPTED
input |
---|
200000 1 1 2 1 3 1 4 1 ... |
correct output |
---|
> > > > > ... |
user output |
---|
> > > > > ... |
Test 5
Verdict: ACCEPTED
input |
---|
200000 188909 2 58944 1 26824 1 143263 2 ... |
correct output |
---|
< < ? < < ... |
user output |
---|
< < ? < < ... |