USC第八届校赛题目 C 罰站(未完成)

#include <iostream>
using namespace std;

struct define{
    char name[35];
    int sale;
    int rank;       
}album[1005],temp;

int cmp(const void* a, const void* b){
    return (*(define*)a).sale < (*(define*)b).sale ? 1 : -1;
}

int main(){
    int week=1,num=0;
    int t;
    int flag;
    bool used;
    int clear[1005];
    cin>>t;
    for(int i=0; i<t; i++){
        scanf("%s %d", temp.name, &temp.sale);
        strcpy(album[num].name, temp.name);
        album[num].sale=temp.sale;
        album[num].rank=0;cout<<album[num].name<<album[num].sale<<album[num].rank<<endl;
        num++;
    }
    cout<<"----------------WEEK "<<week<<"----------------"<<endl;
    qsort(album, 200, sizeof(album[0]), cmp) ;
    for(int i=0; i<5; i++)
        {cout<<i+1<<".*NEW*   "<<album[i].name<<endl;}
             
    while(cin>>t&&t){
        week++;
        cout<<"----------------WEEK "<<week<<"----------------"<<endl;
        for(int i=0; i<t; i++){
            scanf("%s %d", temp.name, &temp.sale);
            used=false;
            flag=-1;
            memset(clear, 1, 200);
            for(int j=0; j<num; j++){
                if(strcmp(temp.name, album[j].name)==0){
                    if(album[j].sale> temp.sale)flag=1;
                    if(album[j].sale< temp.sale)flag=2;
                    if(album[j].sale==temp.sale)flag=3;
                    album[j].sale=temp.sale;
                    used=true;
                    clear[j]=0;
                }
            }
            if(!used){ 
                num++;
                strcpy(album[num].name, temp.name);
                album[num].sale=temp.sale;
                album[num].rank=-1;
            }
            for(int k=0; k<=num; k++){
                if(clear[k]==1)
                    album[k].rank=0;
            }
        }
        {
            qsort(album, 200, sizeof(album[0]), cmp) ;
            for(int i=0; i<5; i++){
                if(album[i].rank==-1)
                    {cout<<i+1<<".*NEW*   "<<album[i].name<<endl;}
                else if(flag==1)
                    {cout<<i+1<<".*UP*    "<<album[i].name<<endl;}
                else if(flag==2)
                    {cout<<i+1<<".*STAY*  "<<album[i].name<<endl;}
                else if(flag==3)
                    {cout<<i+1<<".*DOWN*  "<<album[i].name<<endl;}
            }       
        }
                  
    }
    return 0;
}


你可能感兴趣的:(USC第八届校赛题目 C 罰站(未完成))