HLG 1314 火影忍者之~纲手

Description

因为大蛇丸的捣乱,木叶忍者村痛失了和蔼的三代火影,所以身为三代火影徒弟之一的纲手不得不接受木叶村火影的职务~,因为刚刚上任,所以纲手大人需要对木叶村主要忍者的实力有个了解,以方便以后分配任务,所以我们需要统计一下每个忍者的实力高低,作为刚刚通过公务员选拔的你,这可是个很好的表现机会~你需要做的是将所有给定忍者部分实力高低关系,然后在需要的时候能够快速的查找到.


Input
给出一个整数n,然后n行每行给出两个名字,表示前一个忍者强于后一个,然后是一个整数m,表示m个查找,然后是m行,每行也是两个名字。输入到文件尾。忍者的个数在1000以内,名字不长于20n<1000000,m<=1000
Output
对于每个查找,输出两个忍者的强弱关系,如果前一个强于后一个,输出“win”,如果前一个弱于后一个,输出”lose”,如果不能确定或查找不到,输出”unknown”(强弱关系不能传递。)
Sample Input

3

abc bcd

def fgh

def abc

2

bcd fgh

fgh def

Sample Output

unknown

lose

code:

View Code
#include<stdio.h>
#include<map>
#include<string.h>
#include<string>
int g[1001][1001];
using namespace std;
int main()
{
map<string,int>v;
int m,n,i;
char a[22],b[22];
while(scanf("%d",&n)!=EOF)
{
v.clear();
memset(g,0,sizeof(g));
m=1;
for(i=0;i<n;i++)
{
scanf("%s%s",a,b);
if(!v[a]) v[a]=m++;
if(!v[b]) v[b]=m++;
g[v[a]][v[b]]=1;
}
scanf("%d",&n);
while(n--)
{
scanf("%s%s",a,b);
if(v[a]==0||v[b]==0||(g[v[a]][v[b]]&&g[v[b]][v[a]])||(g[v[a]][v[b]]==0&&g[v[b]][v[a]]==0))
printf("unknown\n");
else if(g[v[a]][v[b]])
printf("win\n");
else if(g[v[b]][v[a]])
printf("lose\n");
}
}
return 0;
}

 

转载于:https://www.cnblogs.com/dream-wind/archive/2012/03/18/2404950.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值