답안 #251850

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
251850 2020-07-22T11:24:40 Z kartel Poklon (COCI17_poklon7) C++14
48 / 120
174 ms 32408 KB
#include <bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>
#define in(x) freopen(x, "r", stdin)
#define out(x) freopen(x, "w", stdout)
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
//#pragma GCC optimize("Ofast,nso-stack-protector,unroll-loops,fast-math,-O3")
//#define F first
//#define S second
#define pb push_back
#define N +500500
#define M ll(1e9 + 7)
#define sz(x) (int)x.size()
#define re return
#define oo ll(1e9)
#define el '\n'
#define Max_A int(1e9)
//#define el endl
#define pii pair <int, int>
#define err ld(1e-9)
#define Max_S int(3e6)
#define last(x) x.back()
#define all(x) (x).begin(), (x).end()
#define arr_all(x, n) (x + 1), (x + 1 + n)
using namespace std;
//using namespace __gnu_pbds;
//typedef tree <int, null_type, less_equal <int> , rb_tree_tag, tree_order_statistics_node_update> ordered_set;
typedef long long ll;
typedef long double ld;

struct str{
    ll le, ri, l, r;
};

str f[N];
ll i, n, ans;

ll rec(ll v)
{
    ll lF = f[v].l;
    ll rF = f[v].r;

    if (f[v].le != 0) lF = rec(f[v].le);
    if (f[v].ri != 0) rF = rec(f[v].ri);

    return 2 * max(lF, rF);
}

string bin(ll x)
{
    string ans = "";
    while (x)
    {
        if (x & 1)
            ans += "1";
        else ans += "0";
        //ans += char('0' + x & 1);
        x >>= 1;
    }
    reverse(all(ans));
    return ans;
}

int main()
{
    cout.precision(2);
    srand(time(0));
    ios_base::sync_with_stdio(0);
    iostream::sync_with_stdio(0);
    ios::sync_with_stdio(0);
    cin.tie(NULL);
    cout.tie(NULL);

//    in("input.txt");
//    out("output.txt");
    cin >> n;
    for (i = 1; i <= n; i++)
    {
        int l, r;
        cin >> l >> r;
        if (l > 0) f[i].le = l; else f[i].l = -l;
        if (r > 0) f[i].ri = r; else f[i].r = -r;
    }

    cout << bin(rec(1) / 2) << "0";
}
//
//00000
//00110
//00111
//00011
//00000
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 384 KB Output is correct
2 Correct 0 ms 384 KB Output is correct
3 Correct 0 ms 384 KB Output is correct
4 Correct 0 ms 384 KB Output is correct
5 Correct 0 ms 384 KB Output is correct
6 Correct 0 ms 384 KB Output is correct
7 Correct 0 ms 384 KB Output is correct
8 Correct 0 ms 384 KB Output is correct
9 Incorrect 0 ms 384 KB Output isn't correct
10 Incorrect 1 ms 384 KB Output isn't correct
11 Incorrect 3 ms 768 KB Output isn't correct
12 Incorrect 4 ms 768 KB Output isn't correct
13 Incorrect 16 ms 2688 KB Output isn't correct
14 Incorrect 31 ms 5112 KB Output isn't correct
15 Incorrect 30 ms 3448 KB Output isn't correct
16 Incorrect 108 ms 14840 KB Output isn't correct
17 Runtime error 173 ms 32408 KB Execution killed with signal 11 (could be triggered by violating memory limits)
18 Runtime error 174 ms 32248 KB Execution killed with signal 11 (could be triggered by violating memory limits)
19 Runtime error 168 ms 32248 KB Execution killed with signal 11 (could be triggered by violating memory limits)
20 Runtime error 156 ms 32248 KB Execution killed with signal 11 (could be triggered by violating memory limits)