답안 #634490

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
634490 2022-08-24T13:23:23 Z inksamurai Poklon (COCI17_poklon7) C++17
0 / 120
570 ms 262144 KB
#include <bits/stdc++.h>
#define int ll
using namespace std;
#define rep(i,n) for(int i=0;i<n;i++)
#define rng(i,c,n) for(int i=c;i<n;i++)
#define per(i,n) for(int i=n-1;i>=0;i--)
#define fi first
#define se second
#define pb push_back
#define sz(a) (int)a.size()
#define vec(...) vector<__VA_ARGS__>
#define _3PGDklf ios::sync_with_stdio(0),cin.tie(0)
typedef long long ll;
using pii=pair<int,int>;
using vi=vector<int>;
void print(){cout<<'\n';}
template<class h,class...t>
void print(const h&v,const t&...u){cout<<v<<' ',print(u...);}
// e

signed main(){
_3PGDklf;
	int n;
	cin>>n;
	vec(vi) adj(n);
	rep(i,n){
		int ul,ur;
		cin>>ul>>ur;
		adj[i].pb(ul);
		adj[i].pb(ur);
	}
	auto bintostr=[&](int v){
		string s="";
		if(v==0) return s="0";
		while(v){
			s+=(char)(v%2+'0');
			v/=2;
		}
		reverse(s.begin(), s.end());
		return s;
	};
	vi cntr(n+1);
	vec(string) rbe(n+1);
	auto dfs=[&](auto self,int v)->void{
		int ma=-1;
		rep(i,sz(adj[v])){
			int u=adj[v][i];
			if(i==0){
				if(u>0){
					self(self,u-1);
				}else{
					ma=max(ma,-u);
				}
			}else{
				if(u>0){
					self(self,u-1);
				}else{
					ma=max(ma,-u);
				}
			}
		}
		cntr[v]=v;
		if(ma>=0) rbe[v]=bintostr(ma);
		int ul=cntr[adj[v][0]<=0?v:adj[v][0]-1];
		int ur=cntr[adj[v][1]<=0?v:adj[v][1]-1];
		// if(!(ul>=0 and ur>=0)){
		// 	cout<<"asdashdasdji\n";
		// 	exit(0);
		// }
		// cntr[v]=ul;
		// if(sz(rbe[ul])<sz(rbe[ur]) or (sz(rbe[ul])==sz(rbe[ur]) and rbe[ul]<rbe[ur])){
		// 	cntr[v]=ur;
		// }
		// rbe[cntr[v]]+="0";
	};
	dfs(dfs,0);
	print(rbe[cntr[0]]);
}

Compilation message

poklon.cpp: In instantiation of 'main()::<lambda(auto:23, ll)> [with auto:23 = main()::<lambda(auto:23, ll)>; ll = long long int]':
poklon.cpp:76:11:   required from here
poklon.cpp:64:7: warning: unused variable 'ul' [-Wunused-variable]
   64 |   int ul=cntr[adj[v][0]<=0?v:adj[v][0]-1];
      |       ^~
poklon.cpp:65:7: warning: unused variable 'ur' [-Wunused-variable]
   65 |   int ur=cntr[adj[v][1]<=0?v:adj[v][1]-1];
      |       ^~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Output isn't correct
2 Incorrect 0 ms 212 KB Output isn't correct
3 Incorrect 0 ms 212 KB Output isn't correct
4 Incorrect 0 ms 212 KB Output isn't correct
5 Incorrect 0 ms 212 KB Output isn't correct
6 Incorrect 1 ms 212 KB Output isn't correct
7 Incorrect 1 ms 212 KB Output isn't correct
8 Incorrect 1 ms 340 KB Output isn't correct
9 Incorrect 1 ms 340 KB Output isn't correct
10 Incorrect 1 ms 340 KB Output isn't correct
11 Incorrect 6 ms 2516 KB Output isn't correct
12 Incorrect 7 ms 2516 KB Output isn't correct
13 Incorrect 35 ms 11852 KB Output isn't correct
14 Incorrect 57 ms 23656 KB Output isn't correct
15 Incorrect 54 ms 12996 KB Output isn't correct
16 Incorrect 179 ms 69244 KB Output isn't correct
17 Incorrect 432 ms 154860 KB Output isn't correct
18 Incorrect 458 ms 164656 KB Output isn't correct
19 Incorrect 570 ms 165304 KB Output isn't correct
20 Runtime error 330 ms 262144 KB Execution killed with signal 9