Friends or not题解
看见数据 ,可以想到直接暴力。
每次判断 两条信息是否符合要求便可。注意查重。这里我使用的是 pair<string,string>,因为我比较懒(逃~)
注意题目中给的是:,别看成 。
代码如下:
#include<bits/stdc++.h>
#define int long long
using namespace std;
struct mail{
string a,b;
int t;
}x[10008];
string ans1[10008],ans2[10008];
map<pair<string,string>,bool> q;
signed main()
{
int n,d,ans=0;
cin>>n>>d;
for(int i=1;i<=n;i++) cin>>x[i].a>>x[i].b>>x[i].t;
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
{
if(x[i].a==x[j].b&&x[i].b==x[j].a&&0<x[j].t-x[i].t&&x[j].t-x[i].t<=d)
{
if(q[{x[i].a,x[i].b}]==0)
{
ans1[++ans]=x[i].a,ans2[ans]=x[i].b;
q[{x[i].a,x[i].b}]=1;
q[{x[i].b,x[i].a}]=1;
}
}
}
cout<<ans<<endl;
while(ans)
{
cout<<ans1[ans]<<" "<<ans2[ans]<<'\n';
ans--;
}
return 0;
}

浙公网安备 33010602011771号