codeforces305b

来源:互联网 发布:mac ansible 编辑:程序博客网 时间:2024/06/14 02:15

万圣节,补一补博客,好多题都没有写博客,今天写一发
这个啊,是一个表达式的求值,好好推一下应该能过。但是!!!!!
这是个1000人的题,然后吧。
心路历程以前做过一个表达式求值的,以为就是用gcd一样,来一次计算,计算到最后,但是由于是longlong 两个想乘为爆,longlong届时当没有数据类型可以存下这个,
后来吧,好吧(看了)别人写的,才知道,以前做的是求值,这次是给值,看想不想等。你就一个一个减值,就可以了,然后就,还有一个主意的就是,那个判断,先判q是否等于0,如果先判断跳出的话,则有可能/0错误

#include<cstdio>#include<cstring>#include<algorithm>using namespace std;typedef long long LL;LL a[100];int main(){    LL p , q;    int n , i;    scanf("%I64d %I64d",&p,&q);    scanf("%d",&n);    for(int i = 0 ; i < n ; i++) scanf("%I64d",&a[i]);    //a[n] = 1;    for(i = 0 ; i < n ; i++){        if( q == 0 || p/q < a[i]) break;        p -= a[i]*q;        LL t = p;        p = q;        q = t;        //printf("p = %I64d\n",p);    }    if(q == 0 && i == n)        printf("YES\n");    else printf("NO\n");    return 0;}
0 0