我炸了
查看原帖
我炸了
359614
Forever1507楼主2020/11/2 21:50

#5 永远过不了

#include <bits/stdc++.h>
using namespace std;
bool check1(string s){
	if(s.size()>16||s==""){
		return 0;
	}
	for(int i=0;i<s.size();i++){
		if(s[i]=='.'){
			return 0;
		}
		if(!((s[i]>='A'&&s[i]<='Z')||(s[i]>='a'&&s[i]<='z')||(s[i]>='0'&s[i]<='9')||(s[i]=='_'))){
			return 0;
		}
	}
	return 1;
}
bool check3(string s){
	for(int i=0;i<s.size();i++){
		if(s[i]=='.'){
			return 0;
		}
		if(s[i]!='/')
		if(!((s[i]>='A'&&s[i]<='Z')||(s[i]>='a'&&s[i]<='z')||(s[i]>='0'&s[i]<='9')||(s[i]=='_'))){
			return 0;
		}
	}
	return 1;
}
bool check2(string s){
	if(s[0]=='.'){
		return 0;
	}
	if(s.size()==0){
		return 0;	
	}
	if(s.size()>32){
		return 0;
	}
	for(int i=0;i<s.size();i++){
		if(s[i]=='.'&&s[i+1]=='.'){
			return 0;
		}
		if(s[i]!='.')
			if(!((s[i]>='A'&&s[i]<='Z')||(s[i]>='a'&&s[i]<='z')||(s[i]>='0'&s[i]<='9')||(s[i]=='_'))){
				return 0;
			}
	}
}
string a;
string a1;
bool flag;
int main(){
	getline(cin,a);
	if(a[a.size()-1]=='/'){
		cout<<"NO";
		return 0;
	}
	for(int i=0;i<a.size();i++){
		if(a[i]=='@'){
			if(check1(a1)==0){
				cout<<"NO";
				return 0;
			}
			a1="";
		}
		else if(a[i]=='/'&&flag==0){
			flag=1;
			if(check2(a1)==0){
				cout<<"NO";
				return 0;
			}
			a1="";
		}
		else 
			a1+=a[i];
	}
	if(flag==0){
		cout<<"YES";
		return 0;
	}
	if(flag==1&&a1==""){
		cout<<"NO";
		return 0;
	}
	if(check3(a1)==0){
		cout<<"NO";
		return 0;
	}
	cout<<"YES";
	return 0;
}

求神犇技术支援

2020/11/2 21:50
加载中...