AC代码(第一次用map感觉map就像是一个很厉害的数组)
Select Code
#include <iostream>
#include <map>
#include <bits/stdc++.h>
using namespace std;
int mp[200][200];
map<string, int>id;
int main()
{
int n, m, i, j, k;
string st, st1, st2;
memset(mp, 0, sizeof(mp));
scanf("%d %d",&n,&m);
int top = 1;
for(i = 0; i<n; i++)
{
cin>>st1>>st>>st>>st>>st2;
if(id[st1]==0)
{
id[st1] = top++;
}
if(id[st2]==0)
{
id[st2] = top++;
}
mp[id[st1]][id[st2]] = 1;
}
for(k = 0; k<n; k++)
{
for(i = 0; i<n; i++)
{
for(j = 0; j<n; j++)
{
if(mp[i][k]&&mp[k][j])
{
mp[i][j] = 1;
}
}
}
}
for(i = 0; i<m; i++)
{
cin>>st1>>st>>st>>st>>st2;
if(mp[id[st1]][id[st2]]==1)
printf("Fact\n");
else if(mp[id[st2]][id[st1]]==1)
printf("Alternative Fact\n");
else
printf("Pants on Fire\n");
}
return 0;
}