HACK过了,其他没过
查看原帖
HACK过了,其他没过
578861
starwu楼主2022/9/29 19:53
#include<bits/stdc++.h>
using namespace std;
int n;
string a;
char as;
bool check(string x) {
	int sum=1,k=0,vis;
	for(int i=7; i<x.size(); i++) {
		if(x[i]=='.'||x[i]==':'||i==x.size()-1) {

			if(x[i]=='.') {
				vis++;
				if(vis==4)
					return 1;
			}
			if(i==x.size()-1) {
				k=k*10+x[i]-'0';
			}
			if(sum<=4) {
				if(0<=k&&k<=255) {
					k=0;
					sum++;
					continue;
				} else {

					//	cout<<k<<" "<<endl;
					return 1;
				}
			}
			if(sum==5) {
				if(0<=k&&k<=65535) {
					k=0;
					sum++;
					continue;
				} else {
					//cout<<k<<" "<<endl;
					return 1;
				}
			}
			if(sum>5) {
				//cout<<">5"<<endl;
				return 1;
			}

			//cout<<k<<endl;
			k=0;

			continue;
		}
		k=k*10+x[i]-'0';
	}
	return 0;
}
map<string ,int>p;
int main() {
	cin>>n;
	scanf("\n");
	for(int i=1; i<=n; i++) {
		getline(cin,a);
		//cout<<a[0]<<endl;
		if(a[0]=='S') {
			//	cout<<p.count(a)<<endl;
			string k;
			for(int j=7; j<a.size(); j++) {
				k+=a[j];
			}
			if(check(a)) {
				cout<<"ERR"<<endl;
			} else if(p.count(k)!=0) {
				cout<<"FALL"<<endl;
			}


			else {
				cout<<"OK"<<endl;
				p[k]=i;
				//	cout<<p[k]<<endl;
			}

		} else {
			string k;
			for(int j=7; j<a.size(); j++) {
				k+=a[j];
			} //cout<<k<<endl;
			//cout<<p.count(k)<<endl;
			if(check(a)) {
				cout<<"ERR"<<endl;
			}

			else if(p.count(k)==0) {
				cout<<"FALL"<<endl;
			} else {
				cout<<p[k]<<endl;

			}
		}
	}
	return 0;
}

求调

2022/9/29 19:53
加载中...