1. 程式人生 > 其它 >【ybt】【字串 處理 課過 例5】生日相同

【ybt】【字串 處理 課過 例5】生日相同

技術標籤:ybt字串

生日相同

題目連結:生日相同


題目描述

在這裡插入圖片描述

解題思路

多關鍵字快排即可。

code

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;

int n,ok;

struct abc{
	string name;
	int m,d;
}a[100010];

bool cmp(abc a,abc b)
{
	if(a.m!=b.m)
		return
a.m<b.m; if(a.d!=b.d) return a.d<b.d; if(a.name.size()!=b.name.size()) return a.name.size()<b.name.size(); return a.name<b.name; } int main() { cin>>n; for(int i=1;i<=n;i++) cin>>a[i].name>>a[i].m>>a[i].d; sort(a+1,a+1+n,cmp); for(int i=1;i<=n;
i++) { int j=i,s=0; while(a[j].m==a[i].m&&a[j].d==a[i].d) j++,s++; j--,s--; if(s>1) { ok=1; cout<<a[i].m<<" "<<a[i].d<<" "; for(int k=i;k<=j;k++) cout<<a[k].name<<" "; cout<<endl; } i=
j; } if(!ok) printf("None"); }