답안 #577890

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
577890 2022-06-15T11:44:41 Z NintsiChkhaidze Poklon (COCI17_poklon7) C++14
114 / 120
621 ms 262144 KB
#include <bits/stdc++.h>
//#include <vector>
//#include <iostream>
#define ll long long
#define pb push_back
#define s second
#define f first

using namespace std;
const int N = 1000005;
int a[N],b[N];

vector<int> bin(int x){
    vector<int> str; str.clear();
    bool z=0;
    for (int j=29;j>=0;j--){
        if((1LL<<j)&x) str.pb(1),z=1;
        else if (z) str.pb(0);
    }
    return str;
}
vector <int> comp(vector <int> a,vector <int> b){
    if (a.size() > b.size()) return a;
    if (a.size() < b.size()) return b;

    for (int i=0;i<a.size();i++){
        if (a[i] > b[i]) return a;
        if (a[i] < b[i]) return b;
    }
    return a;
}
vector <int> dfs(int x){
    vector<int> mx;
    if (a[x] < 0 && b[x] < 0) {
        mx = bin(max(-a[x],-b[x]));
    }else if (a[x] < 0){
        mx = bin(-a[x]);
        mx = comp(mx,dfs(b[x]));
    }else if (b[x]<0){
        mx = bin(-b[x]);
        mx = comp(mx,dfs(a[x]));
    }else{
        mx= comp(dfs(a[x]),dfs(b[x]));
    }
    mx.pb(0);
    return mx;
}
signed main() {
    ios_base::sync_with_stdio(0),cin.tie(NULL),cout.tie(NULL);
    int n;
    cin>>n;

    for(int i = 1; i <= n; i++)
        cin>>a[i]>>b[i];

    vector<int> res = dfs(1);
    bool z=0;
    for (int i=0;i<res.size();i++){
        if (res[i] == 1) z=1;
        if(z) cout<<res[i];
    }
}

Compilation message

poklon.cpp: In function 'std::vector<int> comp(std::vector<int>, std::vector<int>)':
poklon.cpp:26:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   26 |     for (int i=0;i<a.size();i++){
      |                  ~^~~~~~~~~
poklon.cpp: In function 'int main()':
poklon.cpp:58:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   58 |     for (int i=0;i<res.size();i++){
      |                  ~^~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 340 KB Output is correct
5 Correct 0 ms 340 KB Output is correct
6 Correct 0 ms 340 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
9 Correct 1 ms 420 KB Output is correct
10 Correct 2 ms 340 KB Output is correct
11 Correct 7 ms 2132 KB Output is correct
12 Correct 10 ms 1620 KB Output is correct
13 Correct 43 ms 9816 KB Output is correct
14 Correct 62 ms 20208 KB Output is correct
15 Correct 49 ms 1112 KB Output is correct
16 Correct 193 ms 48932 KB Output is correct
17 Correct 507 ms 101216 KB Output is correct
18 Correct 464 ms 117196 KB Output is correct
19 Correct 621 ms 73856 KB Output is correct
20 Runtime error 548 ms 262144 KB Execution killed with signal 9