为何第三个点会RE?
查看原帖
为何第三个点会RE?
443512
LoR_Zhong楼主2022/10/29 13:21

本地第三个点可以成功运行,然而洛谷上就 RE,不是很懂。

第三个点数据:Chen Junao is no so clever .\texttt{Chen Junao is no so clever .}

#include<bits/stdc++.h>
using namespace std;
map<string,int> f;
char sum[6][3];
char ans[20];
int main(){
	f["zero"]     =0;
	f["one"]      =1;
	f["two"]      =2;
	f["three"]    =3;
	f["four"]     =4;
	f["five"]     =5;
	f["six"]      =6;
	f["seven"]    =7;
	f["eight"]    =8;
	f["nine"]     =9;
	f["ten"]      =10;
	f["eleven"]   =11;
	f["twelve"]   =12;
	f["thirteen"] =13;
	f["fourteen"] =14;
	f["fifteen"]  =15;
	f["sixteen"]  =16;
	f["seventeen"]=17;
	f["eighteen"] =18;
	f["ninteen"]  =19;
	f["twenty"]   =20;
	
	f["a"]        =1;
	f["another"]  =1;
	f["first"]    =1;
	f["both"]     =2;
	f["second"]   =2;
	f["third"]    =3;
	
	string k;
	map<string,int>::iterator it;
	for(int i=0;i<6;i++){
		cin>>k;
		it=f.find(k);
		if(it==f.end()) sum[i][0]='0',sum[i][1]='0',sum[i][2]='\0';
		else sprintf(sum[i],"%02d",f[k.c_str()]*f[k.c_str()]%100);
	}
	cin>>k;
	for(int i=0;i<6;i++){
		for(int j=0;j<i;j++){
			if(strcmp(sum[j],sum[i])>0) swap(sum[j],sum[i]);
		}
	}
	for(int i=0;i<6;i++){
		strcat(ans,sum[i]);
	}
	int p=0;
	while(ans[p]=='0'||ans[p]=='\0') p++;
	if(p>=12){
		cout<<0;
		return 0;
	}
	for(int i=p;i<12;i++)
    	cout<<ans[i];
}
2022/10/29 13:21
加载中...