Submission #660693

# Submission time Handle Problem Language Result Execution time Memory
660693 2022-11-22T19:31:21 Z BidoTeima Poklon (COCI17_poklon7) C++17
108 / 120
1000 ms 262144 KB
/*
ID: BidoTeima
LANG: C++11
TASK: 
*/
#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
#pragma GCC optimize("Ofast")
#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()
{
    //();   
    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:7: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
    7 | #pragma GCC optimization ("O3")
      | 
poklon.cpp:8: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
    8 | #pragma GCC optimization ("unroll-loops")
      | 
poklon.cpp: In function 'void ACPLS(std::string)':
poklon.cpp:21:20: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   21 |             freopen("output.txt", "w", stdout);
      |             ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
poklon.cpp:22:20: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   22 |             freopen("input.txt", "r", stdin);
      |             ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
poklon.cpp: In function 'void moo(std::string)':
poklon.cpp:30:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   30 |     freopen((fileName+".in").c_str(),"r",stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
poklon.cpp:31:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   31 |     freopen((fileName+".out").c_str(),"w",stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 45 ms 94160 KB Output is correct
2 Correct 45 ms 94120 KB Output is correct
3 Correct 47 ms 94196 KB Output is correct
4 Correct 46 ms 94124 KB Output is correct
5 Correct 45 ms 94228 KB Output is correct
6 Correct 45 ms 94244 KB Output is correct
7 Correct 45 ms 94172 KB Output is correct
8 Correct 46 ms 94188 KB Output is correct
9 Correct 45 ms 94280 KB Output is correct
10 Correct 45 ms 94180 KB Output is correct
11 Correct 54 ms 95504 KB Output is correct
12 Correct 58 ms 95532 KB Output is correct
13 Correct 98 ms 101452 KB Output is correct
14 Correct 149 ms 109088 KB Output is correct
15 Correct 143 ms 99672 KB Output is correct
16 Correct 411 ms 135560 KB Output is correct
17 Correct 872 ms 184888 KB Output is correct
18 Correct 873 ms 193160 KB Output is correct
19 Execution timed out 1098 ms 181712 KB Time limit exceeded
20 Execution timed out 1032 ms 262144 KB Time limit exceeded