Radio Station CodeForces - 918B (map搜尋 )
阿新 • • 發佈:2018-12-23
題面:
WYBZDYGJSMMZ有n個使用者的使用者名稱與ip地址的對照表。
WYBZDYGJSMMZ現在要對這些IP地址傳送m條指令,格式為:
指令名 ip名; 但是他記憶力不太好,具體症狀表現為,他壓根就記不住哪個ip對照哪個使用者。
那怎麼辦呢,所以他想實現一個功能就是他傳送指令後,程式能夠新輸出一行:
指令名 ip名; #使用者名稱
現在要求你實現這個程式。
Input
第一行兩個整數,n和m (1≤ n,m≤ 1000)
之後n行,每行兩個字串,分別代表使用者名稱和其ip地址
再有m行,每行兩個字串分別代表指令名和末尾多了個;的ip地址
所以字串長度最長不超過10,不可能為空串
Output
輸出m行,每行為與之對應的指令名
ip地址; #使用者名稱
Example
Input
2 2
main 192.168.0.2
replica 192.168.0.1
block 192.168.0.1;
proxy 192.168.0.2;
Output
block 192.168.0.1; #replica
proxy 192.168.0.2; #main
Input
3 5 google 8.8.8.8 codeforces 212.193.33.27 server 138.197.64.57 redirect 138.197.64.57; block 8.8.8.8; cf 212.193.33.27; unblock 8.8.8.8; check 138.197.64.57;
Output
redirect 138.197.64.57; #server
block 8.8.8.8; #google
cf 212.193.33.27; #codeforces
unblock 8.8.8.8; #google
check 138.197.64.57; #server
首先 看題,只是一個 單純的 輸入輸出 ,先輸入幾個使用者(用結構體(陣列)就可以),然後再輸入 一些指令 +ip ,是對這個ip的使用者 下指令,然後再輸出與這個使用者對應的 資訊 ,ip name 指令 。 重點就是 使用者與 ip 匹配,我就可以用一個 ip 字串 與使用者 組成一個對映,用 map<string,i> 這個 i 的 數 就是 第 i 位使用者,就可以直接 map[ip字串] ,這個就是與這個 ip 相應的 i使用者 ,然後輸出 資訊 ,AC 。
程式碼:
#include<iostream>
#include<string.h>
#include<string>
#include<algorithm>
#include<stdio.h>
#include<map>
using namespace std;
const int maxn=1005;
typedef struct
{
char name[maxn];
char ip[maxn];
char zhiling[maxn];
}s;
s shuliang[maxn];
map<string,int>mp;
int main()
{
int i;
int n,m;
cin>>n>>m;
for(i=1;i<=n;i++)
{
cin>>shuliang[i].name>>shuliang[i].ip;
strcat(shuliang[i].ip,";");
mp[shuliang[i].ip]=i;
}
for(i=1;i<=m;i++)
{
char zhilinga[maxn];
char ipa[maxn];
cin>>zhilinga>>ipa;
strcpy(shuliang[mp[ipa]].zhiling,zhilinga);
cout<<shuliang[mp[ipa]].zhiling<<' '<<shuliang[mp[ipa]].ip<<' '<<'#'<<shuliang[mp[ipa]].name<<endl;
}
return 0;
}