답안 #672939

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
672939 2022-12-19T04:14:40 Z Alihan_8 돌 무게 재기 (IZhO11_stones) C++17
0 / 100
1000 ms 2428 KB
#include <bits/stdc++.h>
// include <ext/pb_ds/assoc_container.hpp>
// include <ext/pb_ds/tree_policy.hpp>
// using namespace __gnu_pbds;
using namespace std;
#define all(x) x.begin(), x.end()
#define pb push_back
// define ordered_set tree<int,null_type,less_equal<int>,rb_tree_tag,tree_order_statistics_node_update>
#define mpr make_pair
#define ln '\n'
void IO(string name){freopen((name+".in").c_str(),"r",stdin); freopen((name+".out").c_str(),"w",stdout);}
#define int long long
signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int q; cin >> q;
    set <int> L, R;
    auto ins = [&](int x, int s){
        if ( s == 1 ) L.insert(x);
        else R.insert(x);
    };
    auto ok = [&](){
        auto l = prev(R.end()), r = prev(L.end());
        swap(l, r);
        bool flag = true;
        while ( true ){
            if ( *l > *r ){
                flag = false;
                break;
            }
            if ( l == L.begin() ) break;
            if ( r == R.begin() ){
                flag = false;
                break;
            }
            l = prev(l), r = prev(r);
        }
        return flag;
    };
    while ( q-- ){
        int x, s; cin >> x >> s;
        ins(x, s);
        if ( R.empty() ) cout << ">\n";
        else if ( L.empty() ) cout << "<\n";
        else if ( *R.rbegin() > *L.rbegin() ){
            if ( ok() ) cout << "<\n";
            else cout << "?\n";
        }
        else{
            swap(L, R);
            if ( ok() ) cout << ">\n";
            else cout << "?\n";
            swap(L, R);
        }
    }

    cout << '\n';
}

Compilation message

stones.cpp: In function 'void IO(std::string)':
stones.cpp:11:29: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   11 | void IO(string name){freopen((name+".in").c_str(),"r",stdin); freopen((name+".out").c_str(),"w",stdout);}
      |                      ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
stones.cpp:11:70: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   11 | void IO(string name){freopen((name+".in").c_str(),"r",stdin); freopen((name+".out").c_str(),"w",stdout);}
      |                                                               ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 320 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 320 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
9 Correct 2 ms 340 KB Output is correct
10 Correct 23 ms 736 KB Output is correct
11 Execution timed out 1075 ms 2428 KB Time limit exceeded
12 Halted 0 ms 0 KB -