PAT 乙级 1041 考试座位号

思路是
以“试机座位号”为关键字,“准考证号”和“考试座位号”为值建立一张表,把信息储存到这张表内,查询的时候直接查表即可。

#include <iostream>
#include <string>
#include <map>
#include <algorithm>

using namespace std;

struct Student
{
    string id;
    int pos;
};

map<int,Student> m;

const Student* find(int pos_temp);

int main()
{
    int n;
    Student s;
    int pos_temp;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>s.id>>pos_temp>>s.pos;
        m.insert(pair<int,Student>(pos_temp,s));
    }
    cin>>n;
    int* p=new int[n];
    for(int i=0;i<n;i++)
        cin>>p[i];
    const Student* q=NULL;
    for(int i=0;i<n-1;i++)
    {
        q=find(p[i]);
        cout<<q->id<<" "<<q->pos<<endl;
    }
    q=find(p[n-1]);
    cout<<q->id<<" "<<q->pos<<endl;
    delete p;
    return 0;
}

const Student* find(int pos_temp)
{
    map<int,Student>::iterator itor=m.find(pos_temp);
    if(itor!=m.end())
        return &(itor->second);
    else
        return NULL;
}

猜你喜欢

转载自www.cnblogs.com/FDProcess/p/9236296.html
今日推荐