为啥只有20?
查看原帖
为啥只有20?
1549440
wbhzswl楼主2024/12/3 16:11
#include<stdio.h>
#include<string.h>
int main()
{
    long long n,m;
    scanf("%lld %lld",&n,&m);
    char name[100001][11]={'0'};
    char op[100001];
    long long shu[100001];
    for(long long i=0;i<n+m;i++)
    {
        scanf("%s %c %lld",&name[i],&op[i],&shu[i]);
    }
    int countH=0,countS=0;
    while(countH<2)
    {long long max1=0,imax1=0;
    for(long long i=0;i<m+n-countH;i++)
    {

        if(op[i]=='H')
        {
            if(shu[i]>max1)
            {
                imax1=i;
                max1=shu[i];
            }
        }
    }
    for(long long j=imax1;j<n+m-countH;j++)
    {
        strcpy(name[j],name[j+1]);
        op[j]=op[j+1];
        shu[j]=shu[j+1];
    }
    countH++;
    }
    while(countS<5)
    {long long max2=0,imax2=0;
    for(long long i=0;i<m+n-2-countS;i++)
    {

        if(op[i]=='S')
        {
            if(shu[i]>max2)
            {
                imax2=i;
                max2=shu[i];
            }
        }
    }
    for(long long j=imax2;j<n+m-2-countS;j++)
    {
        strcpy(name[j],name[j+1]);
        op[j]=op[j+1];
        shu[j]=shu[j+1];
    }
    countS++;
    }
    int x=0;
    for(long long i=0;i<5;i++)
    {
        if(op[i]=='H')
        {
            printf("%s",name[i]);
        }
    }
    while(x<=3)
    {long long max2=0,imax2=0;
    for(long long i=0;i<5-x;i++)
    {

        if(op[i]=='S')
        {
            if(shu[i]>max2)
            {
                imax2=i;
                max2=shu[i];
            }
        }
    }


    printf("\n");
    printf("%s",name[imax2]);
    for(long long j=imax2;j<5-x;j++)
    {
        strcpy(name[j],name[j+1]);
        op[j]=op[j+1];
        shu[j]=shu[j+1];
    }
    x++;
    }
    return 0;
}

2024/12/3 16:11
加载中...