Submission #465011

# Submission time Handle Problem Language Result Execution time Memory
465011 2021-08-14T20:29:25 Z TeaTime Money (IZhO17_money) C++17
0 / 100
1 ms 204 KB
//#pragma GCC optimize("O3")
//#pragma GCC target("avx2")
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <map>
#include <set>
#include <queue>
#include <unordered_map>

using namespace std;

#define fastInp cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0);

typedef long long ll;
typedef long double ld;

#define int ll
const ll SZ = 1e6 + 10, INF = 1e9;
ll n, m, q;
vector<ll> vec;

signed main() {
    fastInp;

    cin >> n;

    vec.resize(n);
    ll ans = 0;
    for (auto& c : vec) cin >> c;

    multiset<pair<ll, ll>> er;
    for (int i = 0; i < n; i++) er.insert({ vec[i], -i });
    er.insert({ INF, INF });

    if (er.size() != n + 1) return 1;

    while (vec.size()) {
        ans++;
        ll cur = vec.back();
        vector<pair<ll, ll>> ltr;
        ltr.push_back({ cur, vec.size() - 1 });
        vec.pop_back();

        while (vec.size() > 0) {
            pair<ll, ll> q = (*(er.upper_bound(make_pair(vec.back(), vec.size() - 1))));
            if (vec.size() > 0 && q.first == cur && -q.second == vec.size()) {
                ltr.push_back({ vec.back(), vec.size() - 1 });
                cur = vec.back();
                vec.pop_back();
            } else {
                break;
            }
        }

        for (auto c : ltr) er.erase(er.find(make_pair(c.first, -c.second)));
    }

    if (er.size() != 1) return 1;
    cout << ans;

    return 0;
}

Compilation message

money.cpp: In function 'int main()':
money.cpp:37:19: warning: comparison of integer expressions of different signedness: 'std::multiset<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} and 'll' {aka 'long long int'} [-Wsign-compare]
   37 |     if (er.size() != n + 1) return 1;
      |         ~~~~~~~~~~^~~~~~~~
money.cpp:48:63: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |             if (vec.size() > 0 && q.first == cur && -q.second == vec.size()) {
      |                                                     ~~~~~~~~~~^~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Correct 0 ms 204 KB Output is correct
5 Correct 0 ms 204 KB Output is correct
6 Correct 0 ms 204 KB Output is correct
7 Incorrect 0 ms 204 KB Output isn't correct
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Correct 0 ms 204 KB Output is correct
5 Correct 0 ms 204 KB Output is correct
6 Correct 0 ms 204 KB Output is correct
7 Incorrect 0 ms 204 KB Output isn't correct
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Correct 0 ms 204 KB Output is correct
5 Correct 0 ms 204 KB Output is correct
6 Correct 0 ms 204 KB Output is correct
7 Incorrect 0 ms 204 KB Output isn't correct
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Correct 0 ms 204 KB Output is correct
5 Correct 0 ms 204 KB Output is correct
6 Correct 0 ms 204 KB Output is correct
7 Incorrect 0 ms 204 KB Output isn't correct
8 Halted 0 ms 0 KB -