立命館合宿2012 day3 問題B Unequal Dice (AOJ 2363)

問題

日本語なので本文参照(http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2363

制約条件

t≦10
n,m≦100
v≦100, r≦1.0

方針

ダイスごとに期待値を求める。
値の振られていない面が出たら振りなおしなので、
期待値は1.0/(値の振られていない面の出る確率)倍になる

ソースコード

int main(){
	int t; cin>>t;
	double e=0;
	while(t--){
		int n,m; cin>>n>>m;
		double te=0, rs=0;
		rep(i,m){
			int v; 
			double r; cin>>v>>r;
			te+=v*r;
			rs+=r;
		}
		te/=rs;
		e=max(e,te);
	}
	double he=0,hs=0;
	int p,q; cin>>p>>q;
	rep(i,q){
		int v; double r;
		cin>>v>>r;
		he+=v*r;
		hs+=r;
	}
	he/=hs;
	cout<<(he+0.0000001<e?"YES":"NO")<<endl;
	return 0;
	
}