20pts 求调教
  • 板块P2037 电话号码
  • 楼主_7Mr
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/8/16 09:17
  • 上次更新2023/11/3 03:28:12
查看原帖
20pts 求调教
602632
_7Mr楼主2023/8/16 09:17
#include<bits/stdc++.h>
#define int long long
#define double long double
#define INF INT_MAX
using namespace std;
const int maxn=1e5+5;
int n;
int sum[maxn];
string q[maxn];
map<string,int> flag,wh;
map<int,string> l;
signed main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    int t=1,p=1;
    for(int i=1;i<=26;i++,p++){
    	if(i+'A'-1=='Q' || i+'A'-1=='Z'){
    		p--;
    		continue;
		}
    	if(p%3==1) t++;
    	sum[i]=t;
	}
//	for(int i=1;i<=26;i++) cout<<sum[i]<<" ";
//	cout<<endl;
    cin>>n;
    int cnt=0;
    for(int i=1;i<=n;i++){
    	int dqnow=0;
    	string d;
    	cin>>q[i];
    	for(int j=0;j<q[i].size();j++){
    		if(q[i][j]=='-') continue;
    		if(dqnow==3) d+='-';
    		dqnow++;
    		if('A'<=q[i][j] && q[i][j]<='Z') d+=char(sum[q[i][j]-'A'+1]+'0');
    		else d+=q[i][j];
		}
//		cout<<d<<endl;
		flag[d]++;
		l[++cnt]=d;
	}
	for(int i=1;i<=cnt;i++){
		if(wh[l[i]]==0 && flag[l[i]]>1){
			wh[l[i]]=1;
			cout<<l[i]<<" "<<flag[l[i]]<<endl;
		}
	}
    return 0;
}


2023/8/16 09:17
加载中...