救命,TLE 80分
查看原帖
救命,TLE 80分
248407
暴力出奇迹NB楼主2020/9/22 19:51

RT

(老师的数据过了,洛谷数据超时两个点qwq)

#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<math.h>
#include<map>
using namespace std;
map<char,int> w;
int n,a[100005],ans[100005];
int t[10000005],tt[10000005];
char s[1005];
int main(){
	//freopen("notepad.in","r",stdin);
	//freopen("notepad.out","w",stdout);
	w['0']=0;w['1']=1;
	w['2']=w['A']=w['B']=w['C']=2;	w['3']=w['D']=w['E']=w['F']=3; 
	w['4']=w['G']=w['H']=w['I']=4;  w['5']=w['J']=w['K']=w['L']=5;
	w['6']=w['M']=w['N']=w['O']=6;	w['7']=w['P']=w['R']=w['S']=7;
	w['8']=w['T']=w['U']=w['V']=8;  w['9']=w['W']=w['X']=w['Y']=9;
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%s",s);
		for(int j=strlen(s)-1,k=1;j>=0;j--){
			if(s[j]!='-'&&s[j]!='Q'&&s[j]!='Z'){
				a[i]+=k*w[s[j]];
				k*=10;
			}
		}
		t[a[i]]++;
	}
	sort(a+1,a+1+n);
	int ok=0;
	for(int i=1;i<=n;i++){
		if(t[a[i]]>1){
			ok=1;
			if(tt[a[i]]==0){
				tt[a[i]]=1;
				if(a[i]/10000<100)printf("0");
				if(a[i]/10000<10)printf("0");
				printf("%d-",a[i]/10000);
				if(a[i]%10000<1000)printf("0");
				if(a[i]%10000<100)printf("0");
				if(a[i]%10000<10)printf("0");
				printf("%d %d\n",a[i]%10000,t[a[i]]);
			}
		}
	}
	if(ok==0)printf("No duplicates.");
	return 0;
}
2020/9/22 19:51
加载中...