답안 #660692

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
660692 2022-11-22T19:29:30 Z BidoTeima Poklon (COCI17_poklon7) C++17
108 / 120
1000 ms 262144 KB
/*
ID: BidoTeima
LANG: C++11
TASK: 
*/
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
void moo(string filename);
void ACPLS(string str = "")
{
    if(str=="NOF")return;
    if(str.size())
        moo(str);
    else{
        #ifndef ONLINE_JUDGE
            freopen("output.txt", "w", stdout);
            freopen("input.txt", "r", stdin);
        #endif
    }
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
}
void moo(string fileName){
    freopen((fileName+".in").c_str(),"r",stdin);
    freopen((fileName+".out").c_str(),"w",stdout);
}
#define tc         \
    int tttttt/*,subtask*/;    \
    cin >> tttttt/* >> subtask*/; \
    while (tttttt--)/*end
*/
pair<string,string>adjW[(int)1e6+5];
pair<int,int>adj[(int)1e6+5]; 
string sum[(int)1e6+5]; 
string binary(int x){ 
    string ret;
    if(x<0)x=-x;
    if(!x)return "0";
    while(x){
        ret.push_back('0'+(x%2));
        x/=2;
    }
    reverse(ret.begin(),ret.end());
    return ret;
} 
bool cmp(string&a,string&b){
    if(a.size()>b.size())return 1;
    if(b.size()>a.size())return 0;
    for(int i = 0; i < (int)a.size(); i++){
        if(a[i]=='1'&&b[i]=='0')return 1;
        if(a[i]=='0'&&b[i]=='1')return 0;
    }
    return 1;
}
string dfs(ll node){
    string x = \
    adj[node].first<=0?
    adjW[node].first:
    dfs(adj[node].first);
    string y = \
    adj[node].second<=0?
    adjW[node].second:
    dfs(adj[node].second);
    if(cmp(x,y)){
        x.push_back('0');
        return x;
    }
    y.push_back('0');
    return y;
}
int main()
{
    //ACPLS();   
    int n;
    cin>>n;
    for(int i = 1; i <= n; i++){
        ll u,v;
        cin>>u>>v;
        adj[i].first=(u);
        adj[i].second=(v);
        if(u<=0)adjW[i].first=binary(u);
        if(v<=0)adjW[i].second=binary(v);
    }
    cout<<dfs(1);
}

Compilation message

poklon.cpp: In function 'void ACPLS(std::string)':
poklon.cpp:19:20: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   19 |             freopen("output.txt", "w", stdout);
      |             ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
poklon.cpp:20:20: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   20 |             freopen("input.txt", "r", stdin);
      |             ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
poklon.cpp: In function 'void moo(std::string)':
poklon.cpp:28:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   28 |     freopen((fileName+".in").c_str(),"r",stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
poklon.cpp:29:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   29 |     freopen((fileName+".out").c_str(),"w",stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 43 ms 94220 KB Output is correct
2 Correct 43 ms 94212 KB Output is correct
3 Correct 47 ms 94168 KB Output is correct
4 Correct 48 ms 94180 KB Output is correct
5 Correct 50 ms 94156 KB Output is correct
6 Correct 45 ms 94140 KB Output is correct
7 Correct 44 ms 94228 KB Output is correct
8 Correct 44 ms 94132 KB Output is correct
9 Correct 43 ms 94224 KB Output is correct
10 Correct 44 ms 94224 KB Output is correct
11 Correct 55 ms 95500 KB Output is correct
12 Correct 54 ms 95524 KB Output is correct
13 Correct 96 ms 101460 KB Output is correct
14 Correct 142 ms 109064 KB Output is correct
15 Correct 136 ms 99600 KB Output is correct
16 Correct 368 ms 135636 KB Output is correct
17 Correct 820 ms 184784 KB Output is correct
18 Correct 823 ms 193084 KB Output is correct
19 Execution timed out 1010 ms 181968 KB Time limit exceeded
20 Runtime error 926 ms 262144 KB Execution killed with signal 9