📄 2029.cpp
字号:
/* This Code is Submitted by wywcgs for Problem 2029 on 2006-05-27 at 10:22:20 */
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
const double eps = 1e-6;
class Inv {
public:
int m;
double money;
void make() { scanf("%d %lf", &m, &money); }
double have(int e, double r) const { return money*pow(1+r, e-m+1); }
};
int main()
{
int n, i, t;
Inv inv[12];
for(t = 1; scanf("%d", &n) != EOF && n > 0; t++) {
if(t != 1) putchar('\n');
for(i = 0; i < n; i++) inv[i].make();
double total; int e; scanf("%d %lf", &e, &total);
double l = 0, h = 1;
while(h - l > eps) {
double mid = (h + l) / 2, tn = 0;
for(i = 0; i < n; i++) tn += inv[i].have(e, mid);
if(tn > total) h = mid;
else l = mid;
}
printf("Case %d: %.5lf\n", t, (h+l)/2);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -