PURE MEMORY

时间限制: 1000 ms 内存限制: 65536 kb
总通过人数: 71 总提交人数: 88
Special Judge

题目描述

s7h 喜欢玩英国源神!

在 Arcaea 的世界中,玩家需要通过根据节奏,敲打 note 来获得相应的分数。

对于每一个 note 的敲击,会根据精准度,给出该 note 的评价。从优到劣分为 PURE pure far lost 四种。

同时,游戏内存在回忆收集条机制,我们记一个谱面的物量(即 note 总数)为 $n$ ,则其回忆系数 $k$ 遵循以下公式:

$$ \begin{equation} k=\left\{ \begin{array}{ll} \frac{80}{n} +0.2& n<400 \\ \frac{32}{n}+0.2&400\le n <600 \\ \frac{96}{n} +0.08&600\le n \end{array}\right. \end{equation}$$ 回忆收集条最初为 $0$ ,上限为 $100$ ,下限为 $0$ ,当玩家获得 purePURE 评价时,回忆收集条增加 $k$ ,当玩家获得 far 评价时,回忆收集条增加 $0.5×k$ ,当玩家获得 lost 评价时,回忆收集条减少 $2$ 。

在游戏结束时,会根据玩家的表现给予相应的评价:

当玩家一局中所有 note 都获得 PURE 的评价时,玩家获得满分。

否则,如果一局中所有 note 都获得 PUREpure 的评价,玩家获得评价 pure memory

否则,如果玩家整局没有 lost 的评价,玩家获得评价 full recall

否则,如果在游戏结束时回忆收集条 >= 70,则获得 track complete 的评价,否则获得 track lost 的评价。

如今,s7h 给出了他在一局游戏中每个 note 的表现,请你告诉他最终会获得怎样的评价。

输入

第一行输入一个正整数 $T$,代表数据组数。

对于每组数据,首先输入一行一个正整数,代表一局的 note 总数 $n$。

接下来 $n$ 行,每行一个字符串,为 PURE ,purefarlost的一种。

输出

对于每组数据,输出一行字符串,代表 s7h 获得的最终评价。

如果 s7h 获得了满分,输出 That's impossible!

如果 s7h 获得了 pure memory 评价,输出s7h orz

如果 s7h 获得了 full recall 评价,输出s7h 666

如果 s7h 获得了 track complete 评价,输出just so so

如果 s7h 获得了 track lost 评价,输出 laji s7h

输入样例

3
3
PURE
pure
far
3
PURE
PURE
PURE
1
lost

输出样例

s7h 666
That's impossible!
laji s7h

数据保证 $n\le2221$

错误代码:

#include<stdio.h>
int T;
int n,cnt_PURE,cnt_pure,cnt_far,cnt_lost;
double bar,k;
char s[10];
int main(){
    scanf("%d",&T);
    while(T--){
        scanf("%d",&n);
        if(n>=600)  k=96/n+0.08;
        else if(n>=400) k=32/n+0.2;
        else k=80/n+0.2;
        cnt_PURE=cnt_pure=cnt_far=cnt_lost=0;
        for(int i=1;i<=n;++i){
            scanf("%s",&s);
            if(s[0]=='P'){
                bar+=k;
                cnt_PURE++;
            }
            else if(s[0]=='p'){
                bar+=k;
                cnt_pure++;
            }
            else if(s[0]=='f'){
                bar+=0.5*k;
                cnt_far++;
            }
            else{
                bar–=2.0;
                cnt_lost++;
            }
        }
        if(cnt_PURE==n) printf("That's impossible!\n");
        else if(cnt_PURE+cnt_pure==n)   printf("s7h orz\n");
        else if(cnt_PURE+cnt_pure+cnt_far==n)   printf("s7h 666\n");
        else{
            if(bar>=70.0)   printf("just so so\n");
            else printf("1aji s7h\n");
        }
    }
    return 0;
}

相关推荐