求助大佬
  • 板块灌水区
  • 楼主rish
  • 当前回复2
  • 已保存回复2
  • 发布时间2021/10/23 22:51
  • 上次更新2023/11/4 02:33:38
查看原帖
求助大佬
257173
rish楼主2021/10/23 22:51

有无大佬帮忙看一下这个程序会超出512M的限制吗?

#include <bits/stdc++.h>
using namespace std;
long long read(void)
{
	long long s = 0, f = 0;
	char ch = getchar();
	while(!isdigit(ch)) f = (ch=='-'), ch = getchar();
	while(isdigit(ch)) s = (s<<1)+(s<<3)+(ch^48), ch = getchar();
	return f?(-s):s;
}
long long h;
const int N = 21000000;
struct Node{
	long long s1, s2, s3, s4, s5;
}a[N];
long long pd()
{
	for(int i=1;i<h;i++)
		if(a[h].s1==a[i].s1&&a[h].s2==a[i].s2&&a[h].s3==a[i].s3&&a[h].s4==a[i].s4&&a[h].s5==a[i].s5) return i;
	return -1;
}
int main()
{
	freopen("network.in", "r", stdin);
	freopen("network.out", "w", stdout);
	long long n;
	n = read();
	string s;
	char lm;
	for(int i=1;i<=n;i++)
	{
		cin >> s;
		lm = getchar();
		char x;
		h++;
		a[h].s1 = 0, a[h].s2 = 0, a[h].s3 = 0, a[h].s4 = 0, a[h].s5 = 0;
		while(x = getchar(), x!='.')
			a[h].s1 = a[h].s1*10+(x-'0');
		while(x = getchar(), x!='.')
			a[h].s2 = a[h].s2*10+(x-'0');
		while(x = getchar(), x!='.')
			a[h].s3 = a[h].s3*10+(x-'0');
		while(x = getchar(), x!=':')
			a[h].s4 = a[h].s4*10+(x-'0');
		a[h].s5 = read();
		if(!(a[h].s1>=0&&a[h].s1<=255&&a[h].s2>=0&&a[h].s2<=255&&a[h].s3>=0&&a[h].s3<=255&&a[h].s4>=0&&a[h].s4<=255&&a[h].s5>=0&&a[h].s5<=65535)) 
		{
			puts("ERR");
			h--;
			continue;
		}
		long long ll = pd();
		if(s == "Server")
		{
			if(ll!=-1) puts("FAIL");
			else puts("OK");
		}
		if(s == "Client")
		{
			if(ll==-1) puts("FAIL");
			else cout << ll << endl;
			h--;
		}
	}
	return 0;
}

感谢大佬

2021/10/23 22:51
加载中...