Submission #660695

# Submission time Handle Problem Language Result Execution time Memory
660695 2022-11-22T19:38:17 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);
    bool greaterorequal=1;
    if(y.size()>x.size())greaterorequal=0;
    for(int i = 0; i < (int)x.size() && (int)x.size()==(int)y.size() && greaterorequal; i++){
        if(x.size()>y.size()){
            greaterorequal=1;
            break;
        }
        if(x[i]=='0'&&y[i]=='1'){
            greaterorequal=0;
            break;
        }
        if(x[i]=='1'&&y[i]=='0'){
            greaterorequal=1;
            break;
        }
    }
    if(greaterorequal){
        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 42 ms 94132 KB Output is correct
2 Correct 43 ms 94212 KB Output is correct
3 Correct 41 ms 94132 KB Output is correct
4 Correct 43 ms 94228 KB Output is correct
5 Correct 43 ms 94156 KB Output is correct
6 Correct 45 ms 94152 KB Output is correct
7 Correct 45 ms 94188 KB Output is correct
8 Correct 44 ms 94224 KB Output is correct
9 Correct 43 ms 94284 KB Output is correct
10 Correct 43 ms 94264 KB Output is correct
11 Correct 51 ms 95592 KB Output is correct
12 Correct 56 ms 95436 KB Output is correct
13 Correct 108 ms 101104 KB Output is correct
14 Correct 165 ms 108184 KB Output is correct
15 Correct 135 ms 99592 KB Output is correct
16 Correct 402 ms 133796 KB Output is correct
17 Correct 861 ms 180724 KB Output is correct
18 Correct 930 ms 188312 KB Output is correct
19 Execution timed out 1064 ms 178960 KB Time limit exceeded
20 Runtime error 992 ms 262144 KB Execution killed with signal 9