zoukankan      html  css  js  c++  java
  • cf 305B

    F - Continued Fractions
    Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u
    Appoint description: 

    Description

    A continued fraction of height n is a fraction of form . You are given two rational numbers, one is represented as  and the other one is represented as a finite fraction of height n. Check if they are equal.

    Input

    The first line contains two space-separated integers p, q(1 ≤ q ≤ p ≤ 1018) — the numerator and the denominator of the first fraction.

    The second line contains integer n(1 ≤ n ≤ 90) — the height of the second fraction. The third line contains n space-separated integersa1, a2, ..., an(1 ≤ ai ≤ 1018) — the continued fraction.

    Please, do not use the %lld specifier to read or write 64-bit integers in С++. It is preferred to use the cin, cout streams or the %I64dspecifier.

    Output

    Print "YES" if these fractions are equal and "NO" otherwise.

    Sample Input

    Input
    9 4
    2
    2 4
    Output
    YES
    Input
    9 4
    3
    2 3 1
    Output
    YES
    Input
    9 4
    3
    1 2 4
    Output
    NO

    Hint

    In the first sample .

    In the second sample .

    In the third sample .

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cstdlib>
    #include<string>
    #include<cmath>
    #include<algorithm>
    #include<queue>
    #include<set>
    #include<vector>
    using namespace std;
    #define LL long long
    LL n,a[110],p,q;
    int main()
    {
          bool flag=false;
          cin>>p>>q>>n;
          for(int i=0;i<n;i++)
                cin>>a[i];
          for(int i=0;i<n;i++)
          {
                double res=(double)(p)/q-a[i];
                if(!res&&i==n-1)
                {
                      printf("YES
    ");
                      flag=true;
                }
                else if(res>0&&res<=1)
                {
                      p=p-q*a[i];
                      LL temp=p;
                      p=q;
                      q=temp;
                }
                else
                {
                     flag=true;
                     printf("NO
    ");
                     break;
                }
          }
          if(!flag)
                printf("NO
    ");
          return 0;
    }
    

      

  • 相关阅读:
    git项目管理-合并请求
    记录一次git stash找回删除的存储
    chrome 下 position:fixed失效(react)
    css3 var变量
    rc-select下拉选择控件库推荐
    (转载)vue路径后面去除#号
    本地配置独立域名环境
    javascript判断pc还是手机端
    javascript复制到粘贴板的方案
    javascript轮播插件的使用(TouchSlide)
  • 原文地址:https://www.cnblogs.com/a972290869/p/4217929.html
Copyright © 2011-2022 走看看