4个点TLE??????(请求开放数据下载)
查看原帖
4个点TLE??????(请求开放数据下载)
66313
DоsLikе楼主2020/11/29 21:15

代码如下:

#include <iostream> 
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
int key;
string tmp;
void findkey(string tmp){
	int buc[30];
	memset(buc,0,sizeof(buc));
	for(int i=0;i<tmp.size();i++){
		if(tmp[i]>='a'&&tmp[i]<='z')tmp[i]-=('a'-'A');
	}
	for(int i=0;i<tmp.size();i++){
		if(tmp[i]<'A'||tmp[i]>'Z')continue;
		buc[tmp[i]-'A']++;
	}
	key=0;
	for(int i=0;i<26;i++){
		if(buc[i]>buc[key])key=i;
	}
	key=4-key;
}

void change(string &tmp){
	for(int i=0;i<tmp.size();i++){
		if(tmp[i]>='a'&&tmp[i]<='z')tmp[i]-=('a'-'A');
	}
	for(int i=0;i<tmp.size();i++){
		if(tmp[i]<'A'||tmp[i]>'Z')continue;
		tmp[i]+=key;
		if(tmp[i]<65)tmp[i]=90-65+tmp[i]+1;
		if(tmp[i]>90)tmp[i]=65+tmp[i]-90+1;
	}
}

int main(){
	int n=1;
	int r=1;
	while(1){
		getline(cin,tmp);
		if(tmp=="ENDOFINPUT")break;
		if(r==1)r++;
		else if(r==3)r=1;
		else{
			if(n==1)findkey(tmp);
			change(tmp);
			cout<<tmp<<endl;
			n++;
			r++;
		}	
	}
	return 0;
}

请求开放数据下载

2020/11/29 21:15
加载中...