結果

問題 No.2325 Skill Tree
ユーザー tailstails
提出日時 2023-05-28 15:11:58
言語 cLay
(20241019-1)
結果
AC  
実行時間 80 ms / 3,000 ms
コード長 451 bytes
コンパイル時間 3,911 ms
コンパイル使用メモリ 183,096 KB
実行使用メモリ 15,360 KB
最終ジャッジ日時 2024-12-27 05:07:20
合計ジャッジ時間 9,770 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 36
権限があれば一括ダウンロードができます

ソースコード

diff #

int z[2d5+1],l[];
map<int,int>m;
graph g;
void f(int i,int p){
	rep[g.edge[i]](j,g.es[i]){
		if(j!=p){
			z[j]=max(z[i],l[j-2]);
			m[z[j]]+=1;
			f(j,i);
		}
	}
}
{
	int@n,a[n],b[n];
	rd((l,a)(n-1));
	b[0..n-2]=(2..);
	g.setEdge(n+1,n-1,a,b);
	f(1,1);
	int c=1;
	for(auto& i:m){
		i.second=c+=i.second;
	}
	int@q;
	rep(q){
		int@t,@x;
		if(t==1){
			auto i=m.lower_bound(x+1);
			wt(i==m.begin()?1:(--i)->second);
		}else{
			wt(z[x]?:-1);
		}
	}
}

0