第15次CCF201812-2 小明放学(100分)

2021/9/18 23:35:24

本文主要是介绍第15次CCF201812-2 小明放学(100分),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

vsCode
C++

#include <windows.h> //keep external terminal
#include <bits/stdc++.h>
using namespace std;

typedef long long LL;
int r, y, g, sum_ryg;

LL waitTime(int k, int t, LL ans)
{
    LL pos;
    if (k == 1)
        pos = (r - t + ans) % sum_ryg;
    else if (k == 2)
        pos = (sum_ryg - t + ans) % sum_ryg;
    else if (k == 3)
        pos = (r + g - t + ans) % sum_ryg;

    if (pos < r)
        return r - pos;
    else if (pos >= r && pos < (r + g))
        return 0;
    else
        return sum_ryg - pos + r;
}

int main()
{
    scanf("%d%d%d", &r, &y, &g);
    sum_ryg = r + y + g;
    int n;
    scanf("%d", &n);
    LL ans = 0;
    for (int i = 0; i < n; i++)
    {
        int k, t;
        scanf("%d%d", &k, &t);
        if (k == 0)
            ans += t;
        else
            ans = ans + waitTime(k, t, ans);
    }
    printf("%lld\n", ans);//注意!!!输出格式为【%lld】!!!
    system("pause"); //keep external terminal
    return 0;
}


这篇关于第15次CCF201812-2 小明放学(100分)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程