题目:
题目分析:利用stl里的map,强大的stl,膜拜。。。。。。。。。
代码如下:
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string>
#include <map>
#define PII pair<int,int>
#define PSI pair<string,int>
#define MAX 207
using namespace std;
int n,m;
PSI node[MAX];
map<string,PII> mp;
bool cmp ( const PSI& a , const PSI& b )
{
if ( a.second == b.second ) return a.first < b.first;
else return a.second > b.second;
}
int main ( )
{
// freopen ( "in.in" , "r" , stdin );
while ( scanf ( "%d" , &n ) , n )
{
mp.clear();
for ( int i = 0 ; i < n ; i++ )
{
cin >> node[i].first >> node[i].second;
}
sort ( node , node + n , cmp );
int temp1 = 0 , temp2 = 0;
for ( int i = 0 ; i < n ; i++ )
{
if ( i > 0 && node[i].second != node[i-1].second )
temp2 = 1;
else temp2++;
temp1++;
mp[node[i].first].first = temp1;
mp[node[i].first].second = temp2;
}
for ( int i = 0 ; i < n ; i++ )
cout << node[i].first << " " << node[i].second<<endl;
scanf ( "%d" , &m );
string query;
for ( int i = 0 ; i < m ; i++ )
{
cin >> query;
printf ( "%d" , mp[query].first + 1 - mp[query].second );
int temp = mp[query].second;
if ( temp != 1 ) printf ( " %d" , temp );
puts ("");
}
}
}