답안 #660649

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
660649 2022-11-22T17:47:18 Z BidoTeima Poklon (COCI17_poklon7) C++17
48 / 120
834 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;
    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 13 ms 23764 KB Output is correct
2 Correct 13 ms 23732 KB Output is correct
3 Correct 14 ms 23696 KB Output is correct
4 Correct 13 ms 23688 KB Output is correct
5 Correct 12 ms 23720 KB Output is correct
6 Correct 12 ms 23764 KB Output is correct
7 Correct 13 ms 23716 KB Output is correct
8 Correct 12 ms 23764 KB Output is correct
9 Incorrect 13 ms 23764 KB Output isn't correct
10 Incorrect 14 ms 23764 KB Output isn't correct
11 Incorrect 22 ms 24532 KB Output isn't correct
12 Incorrect 22 ms 24524 KB Output isn't correct
13 Incorrect 54 ms 27020 KB Output isn't correct
14 Incorrect 89 ms 30176 KB Output isn't correct
15 Incorrect 89 ms 28616 KB Output isn't correct
16 Incorrect 284 ms 43604 KB Output isn't correct
17 Incorrect 642 ms 69128 KB Output isn't correct
18 Incorrect 643 ms 70876 KB Output isn't correct
19 Incorrect 834 ms 76524 KB Output isn't correct
20 Incorrect 833 ms 102196 KB Output isn't correct