답안 #660651

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
660651 2022-11-22T17:49:13 Z BidoTeima Poklon (COCI17_poklon7) C++17
48 / 120
817 ms 102196 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
*/
vector<ll>adj[(int)1e6+5];
ll sum[(int)1e6+5];
vector<ll>sorted; 
void toposort(ll node){
    if(node<=0)return;
    toposort(adj[node][0]);
    toposort(adj[node][1]);
    sorted.push_back(node);
}
void dfs(ll node){
    if(node<=0)return;
    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;
    if(sum[1]==0)binary="0";
    else 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 11 ms 23672 KB Output is correct
2 Correct 12 ms 23764 KB Output is correct
3 Correct 12 ms 23764 KB Output is correct
4 Correct 12 ms 23764 KB Output is correct
5 Correct 13 ms 23792 KB Output is correct
6 Correct 12 ms 23764 KB Output is correct
7 Correct 12 ms 23732 KB Output is correct
8 Correct 12 ms 23764 KB Output is correct
9 Incorrect 13 ms 23740 KB Output isn't correct
10 Incorrect 14 ms 23848 KB Output isn't correct
11 Incorrect 19 ms 24460 KB Output isn't correct
12 Incorrect 22 ms 24564 KB Output isn't correct
13 Incorrect 53 ms 26960 KB Output isn't correct
14 Incorrect 89 ms 30104 KB Output isn't correct
15 Incorrect 87 ms 28568 KB Output isn't correct
16 Incorrect 275 ms 43592 KB Output isn't correct
17 Incorrect 627 ms 69208 KB Output isn't correct
18 Incorrect 628 ms 70860 KB Output isn't correct
19 Incorrect 817 ms 76372 KB Output isn't correct
20 Incorrect 792 ms 102196 KB Output isn't correct