Submission #660690

# Submission time Handle Problem Language Result Execution time Memory
660690 2022-11-22T19:26:53 Z BidoTeima Poklon (COCI17_poklon7) C++17
108 / 120
1000 ms 262144 KB
/*
ID: BidoTeima
LANG: C++11
TASK: 
*/
#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:17:20: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   17 |             freopen("output.txt", "w", stdout);
      |             ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
poklon.cpp:18:20: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   18 |             freopen("input.txt", "r", stdin);
      |             ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
poklon.cpp: In function 'void moo(std::string)':
poklon.cpp:26:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   26 |     freopen((fileName+".in").c_str(),"r",stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
poklon.cpp:27:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   27 |     freopen((fileName+".out").c_str(),"w",stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 43 ms 94164 KB Output is correct
2 Correct 50 ms 94148 KB Output is correct
3 Correct 42 ms 94180 KB Output is correct
4 Correct 42 ms 94164 KB Output is correct
5 Correct 40 ms 94136 KB Output is correct
6 Correct 42 ms 94232 KB Output is correct
7 Correct 46 ms 94160 KB Output is correct
8 Correct 45 ms 94196 KB Output is correct
9 Correct 43 ms 94216 KB Output is correct
10 Correct 42 ms 94284 KB Output is correct
11 Correct 51 ms 95480 KB Output is correct
12 Correct 54 ms 95428 KB Output is correct
13 Correct 94 ms 101000 KB Output is correct
14 Correct 142 ms 108232 KB Output is correct
15 Correct 138 ms 99640 KB Output is correct
16 Correct 465 ms 133624 KB Output is correct
17 Correct 855 ms 180740 KB Output is correct
18 Correct 880 ms 188512 KB Output is correct
19 Execution timed out 1083 ms 145540 KB Time limit exceeded
20 Execution timed out 1000 ms 262144 KB Time limit exceeded