C语言编程练习42:Shopping

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.

InputOne 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.
OutputContains 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

map的使用
#include <iostream>
#include <map>
#include <string>

using namespace std;

int main()
{
   int t;
   while(cin>>t)
   {
       string s;
       for(int i=0;i<t;i++)
       {
           cin>>s;
       }
   
        int m;
        cin>>m;
        map<string,int>shop;
        int p;
        string na;
        while(m--)
        {
            for(int i=0;i<t;i++)
            {
                cin>>p>>na;
                shop[na]+=p;
            }
            int ans;
            ans=1;
            map<string,int>::iterator it;
            for(it=shop.begin();it!=shop.end();it++)
            {
                if(it->second>shop["memory"])
                {
                    ans++;
                }
            }
            cout<<ans<<endl;
        }
    }
    return 0;
}

 



posted @ 2021-02-01 15:59  FantasticDoulbeFish  阅读(186)  评论(0编辑  收藏  举报