欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CodeForces 1010A

程序员文章站 2024-03-17 15:30:28
...

题目链接: http://codeforces.com/contest/1010/problem/A
这道题注意下输出精度:#include ……cout << fixed << setprecision(10)<< weight << endl;
还有就是无解的情况:起落时,1油带动的重量>1,题目提示的是油不超过1e+9,实际上就是根据数学计算得出的条件:a,b不可以为1(除数不能为0)
现在发现其实CodeForces上可以查看别人提交的代码,可以好好学习一下!

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
    int n,m,i;
    long double weight=0,total=0,temp;
    int a[1005];
    int b[1005];
    cin>>n;
    cin>>m;
    total=m;
    for(i=0;i<n;i++){
        cin>>a[i];
        if(a[i]==1){
            cout<< -1 <<endl;
            return 0;
        }
    }
    for(i=0;i<n;i++){
        cin>>b[i];
        if(b[i]==1){
            cout<< -1 <<endl;
            return 0;
        }
    }
    temp=total/(b[0]-1);
    total+=temp;
    weight+=temp;
    for(i=n-1;i>0;i--){
        temp = total/(a[i]-1);
        total+=temp;
        weight+=temp;
        temp = total/(b[i]-1);
        total+=temp;
        weight+=temp;
    }
    temp = total/(a[0]-1);
    total+=temp;
    weight+=temp;
    cout << fixed << setprecision(10)<< weight << endl;
    return 0;
}