有无大佬帮忙看一下这个程序会超出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;
}
感谢大佬