답안 #660648

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
660648 2022-11-22T17:42:23 Z BidoTeima Poklon (COCI17_poklon7) C++17
48 / 120
1000 ms 129036 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
*/
map<ll,vector<ll>>adj{};
map<ll,ll>sum{};
vector<ll>sorted; 
void toposort(ll node){
    if(node<=0)return;
    if(adj[node].size()<2){
        cout<<"BRUH";
        exit(0);
    }
    toposort(adj[node][0]);
    toposort(adj[node][1]);
    sorted.push_back(node);
}
void dfs(ll node){
    if(node<=0)return;
    if(adj[node].size()<2){
        cout<<"BRUH";
        exit(0);
    }
    ll x=0,y=0;
    if(adj[node][0]>0){ 
        x=sum[adj[node][0]]; 
    }
    else{
        x=-adj[node][0]; 
    }
    if(adj[node][1]>0){ 
        y=sum[adj[node][1]]; 
    }
    else{
        y=-adj[node][1]; 
    }
    sum[node]+=x+y+abs(x-y);
}
int main()
{
    //ACPLS();   
    int n;
    cin>>n;
    for(int i = 1; i <= n; i++){
        int u,v;
        cin>>u>>v;
        adj[i].push_back(u);
        adj[i].push_back(v); 
    }
    toposort(1);
    for(int node : sorted){
        dfs(node);
    }
    string binary;
    while(sum[1]){
        binary.push_back((sum[1]%2)+'0');
        sum[1]/=2;
    }
    reverse(binary.begin(),binary.end());
    cout<<binary;
}

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);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 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 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
9 Incorrect 1 ms 340 KB Output isn't correct
10 Incorrect 2 ms 468 KB Output isn't correct
11 Incorrect 17 ms 2492 KB Output isn't correct
12 Incorrect 20 ms 2900 KB Output isn't correct
13 Incorrect 111 ms 11596 KB Output isn't correct
14 Incorrect 187 ms 22844 KB Output isn't correct
15 Incorrect 220 ms 19928 KB Output isn't correct
16 Incorrect 719 ms 74628 KB Output isn't correct
17 Execution timed out 1096 ms 125252 KB Time limit exceeded
18 Execution timed out 1098 ms 129036 KB Time limit exceeded
19 Execution timed out 1098 ms 126924 KB Time limit exceeded
20 Execution timed out 1070 ms 125820 KB Time limit exceeded