1. 程式人生 > >Radio Station CodeForces - 918B (map搜尋 )

Radio Station CodeForces - 918B (map搜尋 )

題面:

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;
}