답안 #251852

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
251852 2020-07-22T11:25:21 Z kartel Poklon (COCI17_poklon7) C++14
48 / 120
329 ms 71672 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 +1000500
#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 1 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 32 ms 5100 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 Incorrect 259 ms 38008 KB Output isn't correct
18 Incorrect 262 ms 39820 KB Output isn't correct
19 Incorrect 329 ms 45816 KB Output isn't correct
20 Incorrect 309 ms 71672 KB Output isn't correct