题解
2024-05-27 13:14:38
发布于:广东
13阅读
0回复
0点赞
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
struct node{
string name, id;
bool operator < (const node &b) const{//装X,定义小于
if(name == b.name) return id < b.id;
return name < b.name;
}
}a[100005];
int main(){
int n;
string x, y;
cin >> n;
for(int i = 1; i <= n; i++){
cin >> x >> y;
a[i] = {x, y};
}sort(a + 1, a + n + 1);//排序,实际是为了聚集相同用户名
bool flag = 1;//是否只登陆一个地方
x = a[1].name, y = a[1].id;
for(int i = 2; i <= n; i++){
if(a[i].name != x){//判断如果用户换了
if(flag) cout << x << endl;//如果只登陆了一个就输出
x = a[i].name, y = a[i].id, flag = 1;//换新的用户
}else if(a[i].id != y){//如果地点换了
flag = 0;//就有多个地方
}
}if(flag) cout << a[n].name;//判断最后一个用户
return 0;
}
时间复杂度:
这里空空如也
有帮助,赞一个