1088 三人行 (20 分)(测试点三)

65 阅读1分钟

1088 三人行 (20 分)

题目链接

算法分析

遍历所有的两位数(从大到小),判断是否为解。若是,则输出结果,若遍历结束后还没输出,那就输出无解。

测试点

测试点三,卡你知不知道丙的能力值可以非整数。

代码实现

#include<bits/stdc++.h>
using namespace std;
int m, x, y;
int work(int x){
	return (x % 10) * 10 + x / 10;
}
void print(double x){
	if(x > m) printf(" Cong");
	else if(x == m) printf(" Ping");
	else	printf(" Gai");
}
int main(){
	scanf("%d%d%d", &m, &x, &y);
	for(int i = 99; i >= 10; -- i)
		if(x * work(i) == y * abs(i - work(i))){
			printf("%d", i);
			print(i);
			print(work(i));
			print(abs(i - work(i)) * 1.0 / x);
			return 0;
		}
	puts("No Solution");
	return 0;
}