快来签到呀(水题)

快来签到呀

Description

受疫情影响,霍格沃茨的学生们也在家上网课。konomikonomikonomi是格兰芬多学院应用魔法与术士构造专业的学生今天他要上nnn门课程,第i门课有一个签到截止时间aia_iaikonomikonomikonomi必须在截止前释放魔法进行签到,但konomikonomikonomi的法杖坏掉了,不能直接释放魔法,他只能通过构造魔法阵进行签到,构造第iii门课的魔法阵需要bib_ibi的时间,konomikonomikonomi想要在每门课签到截止之前完成该门课的魔法阵构造,请帮他计算一下他能不能做到。

Input

第一行一个整数nnn,表示有nnn门课

第二行nnn个整数,第iii个数表示第iii门课签到截止时间aia_iai

第三行nnn个整数,第iii个数表示构造第i门课的魔法阵需要的时间bib_ibi

1≤n≤1000,0&lt;ai,bi&lt;1e91 \leq n \leq 1000, 0 &lt;a_i, b_i &lt;1e91n1000,0<ai,bi<1e9

Output

如果konomikonomikonomi能完成所有课程的签到,输出"Tarantollegra",否则输出"Unforgivable Curses"。

Sample Input 1

3 1 2 3 1 1 1 

Sample Output 1

Tarantollegra 

Sample Input 2

3 1 3 5 1 1 5

Sample Output 2

Unforgivable
Curses

Sample Input 3

3 4 2 6 2 1 3

Sample Output 3

Tarantollegra 

Source

Chter

  • 注意:这一题所给的 每们课的签到时间,并不是按 顺序时间来的(巨弱的我我为啥没想到),我们可以用结构题来维护数据,在用前缀和数组来维护总的时间

代码

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<string>
#include<vector>
#include<map>
#include<algorithm>
using namespace std;

#define db double
#define ll long long 

const int Len = 1e6 + 5;
struct Node
{
    ll tim, sp;
    bool operator < (Node a) const
    {
        return tim < a.tim;
    }
} node[Len];

int sum[Len];

int main()
{
    //freopen("A.txt","r",stdin);
    int n;
    scanf("%d", &n);
    for(int i = 1; i <= n; i ++)
        scanf("%lld", &node[i].tim);
    for(int i = 1; i <= n; i ++)
        scanf("%lld", &node[i].sp);
    sort(node + 1, node + 1 + n);

    for(int i = 1; i <= n; i ++)
    {
        sum[i] = sum[i-1] + node[i].sp;
    }
    int flag = 1;
    for(int i = 1; i <= n; i ++)
    {
        if(node[i].tim < sum[i])
        {
            flag = 0;
            break;
        }
    }
    if(flag)
        printf("Tarantollegra\n");
    else
        printf("Unforgivable Curses\n");

    return 0;
}

发布了149 篇原创文章 · 获赞 228 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_34261446/article/details/105151938
今日推荐