답안 #249516

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
249516 2020-07-15T07:51:30 Z Vimmer Poklon (COCI17_poklon7) C++14
0 / 120
527 ms 262148 KB
#include <bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>

#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-O3")
#pragma GCC optimize("Ofast")
//#pragma GCC optimize("fast-math")
//#pragma GCC optimize("no-stack-protector")

#define F first
#define S second
#define sz(x) int(x.size())
#define pb push_back
#define pf push_front
#define N 1000010
#define M ll(1e9 + 7)
#define inf 1e9 + 1e9

using namespace std;
//using namespace __gnu_pbds;

typedef long double ld;
typedef long long ll;
typedef unsigned long long ull;
typedef short int si;
typedef array <int, 6> a6;

//typedef tree <int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;

bool mk[N][2];

pair <ll, ll> val[N];

vector <char> tranc(ll x)
{
    vector <char> ans; ans.clear();

    while (x > 0)
    {
        if (x % 2) ans.pb('1');
          else ans.pb('0');

        x /= 2;
    }

    reverse(ans.begin(), ans.end());

    return ans;
}

vector <char> &dfs(ll v)
{
    vector <char> l, r;

    if (mk[v][0]) l = dfs(val[v].F); else l = tranc(val[v].F);

    if (mk[v][1]) r = dfs(val[v].S); else r = tranc(val[v].S);

    if (sz(l) < sz(r)) swap(l, r);

    if (sz(l) != sz(r)) {l.pb('0'); return l;}

    for (int i = 0; i < sz(l); i++)
    {
        if (l[i] == r[i]) continue;

        if (r[i] == '1') swap(l, r);

        break;
    }

    l.pb('0'); return l;
}

int main()
{
    //freopen("input.txt", "r", stdin); freopen("output4.txt", "w", stdout);

    ios_base::sync_with_stdio(0); istream::sync_with_stdio(0); cin.tie(0); cout.tie(0);

    ll n;

    cin >> n;

    for (ll i = 1; i <= n; i++)
    {
        ll l, r;

        cin >> l >> r;

        if (l < 0) val[i].F = abs(l); else {mk[i][0] = 1; val[i].F = l;}

        if (r < 0) val[i].S = abs(r); else {mk[i][1] = 1; val[i].S = r;}
    }

    vector <char> gr = dfs(1);

    for (auto it : gr) cout << it;
}

Compilation message

poklon.cpp: In function 'std::vector<char>& dfs(ll)':
poklon.cpp:54:19: warning: reference to local variable 'l' returned [-Wreturn-local-addr]
     vector <char> l, r;
                   ^
poklon.cpp:54:19: warning: reference to local variable 'l' returned [-Wreturn-local-addr]
# 결과 실행 시간 메모리 Grader output
1 Runtime error 2 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Runtime error 1 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
3 Runtime error 1 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
4 Runtime error 2 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
5 Runtime error 2 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
6 Runtime error 1 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
7 Runtime error 2 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
8 Runtime error 2 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
9 Runtime error 2 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
10 Runtime error 2 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
11 Runtime error 4 ms 768 KB Execution killed with signal 11 (could be triggered by violating memory limits)
12 Runtime error 6 ms 896 KB Execution killed with signal 11 (could be triggered by violating memory limits)
13 Runtime error 15 ms 2304 KB Execution killed with signal 11 (could be triggered by violating memory limits)
14 Runtime error 34 ms 3960 KB Execution killed with signal 11 (could be triggered by violating memory limits)
15 Runtime error 30 ms 3960 KB Execution killed with signal 11 (could be triggered by violating memory limits)
16 Runtime error 100 ms 12536 KB Execution killed with signal 11 (could be triggered by violating memory limits)
17 Runtime error 242 ms 28792 KB Execution killed with signal 11 (could be triggered by violating memory limits)
18 Runtime error 261 ms 29088 KB Execution killed with signal 11 (could be triggered by violating memory limits)
19 Runtime error 315 ms 36192 KB Execution killed with signal 11 (could be triggered by violating memory limits)
20 Runtime error 527 ms 262148 KB Execution killed with signal 11 (could be triggered by violating memory limits)