hdu1718 Rank

#include <stdio.h>
#include <string.h>
#include <cstring>
#include <iostream>


using namespace std;


int main()
{
    //freopen("in.txt","r",stdin);
    int sco[105], ans, pri, a, b, i, j, N;
    char st[1005][100], st0[100], cmp[100];
    while(cin >> st0)
    {
        a = b = N = 0;
        pri = 0;
        while(~scanf("%s%d", &st[a], &sco[b]) && strcmp(st[a], "0") && sco[b] != 0)
        {
            a++;
            b++;
            N++;
        }
        for(i = 0; i < N; i++)
            for(j = 0; j < N - i - 1; j++)
            {
                if(sco[j] > sco[j+1])
                {
                    int t = sco[j];
                    sco[j] = sco[j+1];
                    sco[j+1] = t;
                    strcpy(cmp, st[j]);
                    strcpy(st[j], st[j + 1]);
                    strcpy(st[j + 1], cmp);
                }
            }
        for(int k = 0; k < N; k++)
            if(!strcmp(st[k], st0)) { ans = k; break; }
        for(i = N - 1; i >= 0; i--)
        {
            if(sco[i] > sco[ans]) pri++;
            else break;
        }
        printf("%d\n", pri + 1);
        memset(sco, 0, sizeof(sco));
        memset(st, 0, sizeof(st));
        memset(st0, 0, sizeof(st0));
        memset(cmp, 0, sizeof(cmp));
    }
    return 0;

}

心得:做完六级水到题,结果手好生。。。好歹a了。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值