社区讨论

求调:前导零不会判QAQ

P7911[CSP-J 2021] 网络连接参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mhjbb52u
此快照首次捕获于
2025/11/03 23:46
4 个月前
此快照最后确认于
2025/11/03 23:46
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;

int n;

map<string, int>mp;

bool is_ok ( string s2 )
{
	string s = s2 + '.';

	int len = s.size();
	int t = 0;
	int p = 0;

	for ( int i = 0; i < len; i++ )
	{
		if ( isdigit ( s[i] ) ) t = t * 10 + s[i] - '0';
		else
		{
			p++;
			if ( p <= 4 )
			{
				if ( t < 0 || t > 255 ) return 0;
			}
			else
			{
				if ( t < 0 || t > 65535 ) return 0;
			}
			t = 0;
		}
	}
	return 1;
}

void solve_se ( string s, int i )
{
	if ( !is_ok ( s ) )
	{
		cout << "ERR\n";
		return ;
	}

	if ( mp.find ( s ) == mp.end()  )
	{
		cout << "OK\n";
		mp[s] = i;
		return ;
	}

	if ( mp.find ( s ) != mp.end() )
	{
		cout << "FAIL\n";
	}
}

void solve_cl ( string s )
{
	if ( !is_ok ( s ) )
	{
		cout << "ERR\n";
		return ;
	}

	auto it = mp.find ( s );

	if ( it == mp.end() )
	{
		cout << "FAIL\n";
		return ;
	}

	if ( it != mp.end() )
	{
		cout << it->second << "\n";
	}

}

int main()
{
	cin >> n;

	for ( int i = 1; i <= n; i++ )
	{
		string s1, s2, ans;

		cin >> s1 >> s2;

		if ( s1 == "Server" ) solve_se ( s2, i );
		else solve_cl ( s2 );

	}

	return 0;
}
/*
1
Client 25.71.134.48:00588
*/

回复

0 条回复,欢迎继续交流。

正在加载回复...