vendredi 19 juillet 2019

Is there a problem with my map construction?

My code didn't report a bug. But when run in the online judge system, I was told that it couldn't get right answer for some special samples. I can't figure it out, so I turn to here for help.

Problem Description

Every girl likes shopping,so does dandelion.Now she finds the shop is increasing the price every day because the Spring Festival is coming .She is fond of a shop which is called "memory". Now she wants to know the rank of this shop's price after the change of everyday.

Input

One line contians a number n ( n<=10000),stands for the number of shops. Then n lines ,each line contains a string (the length is short than 31 and only contains lowercase letters and capital letters.)stands for the name of the shop. Then a line contians a number m (1<=m<=50),stands for the days . Then m parts , every parts contians n lines , each line contians a number s and a string p ,stands for this day ,the shop p 's price has increased s.

Output

Contains m lines ,In the ith line print a number of the shop "memory" 's rank after the ith day. We define the rank as :If there are t shops' price is higher than the "memory" , than its rank is t+1.

Sample Input

3

memory

kfc

wind

2

49 memory

49 kfc

48 wind

80 kfc

85 wind

83 memory

Sample Output

1

2

#include<algorithm>
#include<iostream>
#include<map>
#include<cstdio>
using namespace std;
const int maxn = 10010;

int main(){
    int n,m;
    map<string ,int> dic ;
    char names[maxn][32];
    scanf("%d",&n);
    for(int i = 0;i<n;i++){
        scanf("%s",names[i]);
        dic[names[i]] = 0;
    }
    scanf("%d",&m);
    while(m--){
        for(int i = 0;i<n;i++){
            int temp;
            scanf("%d",&temp);
            char tp[32];
            scanf("%s",tp);
            dic[tp] += temp;
        }
        int ranking = 1;
        for(int j = 0;j<n;j++){
            if(dic[names[j]]>dic[names[0]]){
                ranking++;
            }
        }
        printf("%d\n",ranking);
    }
    return 0;
}


Although I don't have any problem with the sample, but it Can't pass black box test.

Aucun commentaire:

Enregistrer un commentaire