1769.cpp

来自「哈尔滨工业大学ACM 竞赛网上在线试题集锦的源代码」· C++ 代码 · 共 40 行

CPP
40
字号
/*  This Code is Submitted by wywcgs for Problem 1769 on 2005-09-25 at 19:39:38 */ 
#include <stdio.h>
#define  Max(a,b)  (((a)>(b))?(a):(b))
#define  Min(a,b)  (((a)<(b))?(a):(b))

int main()
{
	int m, n, p, q;
	int i, s, t, max, min;
	double v;
	
	while(scanf("%d %d %d %d", &m, &n, &p, &q) == 4) {
		if(m - n > n) {
			n = m - n;
		}
		if(p - q > q) {
			q = p - q;
		}
		v = 1;
		s = m - n;
		t = p - q;
		max = Max(s,t);
		min = Min(s,t);
		for(i = 1; i <= max; i++) {
			if(i <= min) {
				v *= (double)(n + i) / (q + i);
			} else {
				if(s > t) {
					v *= (double)(n + i) / i;
				} else {
					v *= (double)i / (q + i);
				}
			}
		}
		printf("%.5lf\n", v);
	}
	
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?