zoukankan      html  css  js  c++  java
  • Last Defence (2014 西安现场赛)

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=94237#problem/K

    Last Defence

    Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu

    Given two integers A and B. Sequence S is defined as follow:
    • S0 = A
    • S1 = B
    • Si = |Si−1 − Si−2| for i ≥ 2
    Count the number of distinct numbers in S.
    Input
    The first line of the input gives the number of test cases, T. T test cases follow. T is about 100000.
    Each test case consists of one line — two space-separated integers A, B. (0 ≤ A, B ≤ 1018).
    Output
    For each test case, output one line containing ‘Case #x: y’, where x is the test case number (starting
    from 1) and y is the number of distinct numbers in S.
    Sample Input
    2
    7 4
    3 5
    Sample Output
    Case #1: 6
    Case #2: 5

    #include<stdio.h>
    
    int main()
    {
        long long t, iCase=1;
        scanf("%lld", &t);
        while(t--)
        {
            long long a, b, sum=0, k, t;
    
            scanf("%lld%lld", &a, &b);
    
            if(a<b)
              t=a, a=b, b=t;
    
            if(a==0 && b==0)
            {
                printf("Case #%lld: 1
    ", iCase++);
                continue;
            }
            else if(b==0)
            {
                printf("Case #%lld: 2
    ", iCase++);
                continue;
            }
    
            while(a%b!=0)
            {
                sum += a/b;
                k = a;
                a = b;
                b = k%b;
            }
    
            sum += a/b;
    
            printf("Case #%lld: %lld
    ", iCase++, sum+1);
        }
        return 0;
    }
    View Code
    勿忘初心
  • 相关阅读:
    拓扑编号
    奇怪的梦境
    奖金
    最优布线问题
    亲戚
    最小花费
    Dijkstra算法 最短路径 (部分)
    Floyed算法 最短路径
    P1164 小A点菜(背包方案数模板)
    P1049 装箱问题
  • 原文地址:https://www.cnblogs.com/YY56/p/4864094.html
Copyright © 2011-2022 走看看