社区讨论
普及第三道挂了,SH还能一等吗
灌水区参与者 4已保存回复 8
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 8 条
- 当前快照
- 1 份
- 快照标识符
- @lobfo5q6
- 此快照首次捕获于
- 2023/10/29 20:14 2 年前
- 此快照最后确认于
- 2023/11/04 01:44 2 年前
CPP
#include<bits/stdc++.h>
using namespace std;
struct p
{
int a,b,c,d,e,id;
} cl[10010],se[10010];
char ch[2000],x[5000],y[5000],z[5000],u[5000],v[5000],w[5000];
int n;
int sum1=0,sum2=0;
bool isd(char x)
{
return x>='0'&&x<='9';
}
int d(bool qw,int aq)
{
int q=strlen(x);
int p=0;
memset(y,0,sizeof(y));
memset(z,0,sizeof(z));
memset(u,0,sizeof(z));
memset(v,0,sizeof(v));
memset(w,0,sizeof(w));
int leny=0,lenz=0,lenu=0,lenv=0,lenw=0;
for(int i=0;i<q;i++)
{
if(x[i]=='.')
{
p=i+1;
break;
}
y[leny++]=x[i];
if(i==q-1) p=q+1;
}
for(int i=p;i<q;i++)
{
if(x[i]=='.')
{
p=i+1;
break;
}
z[lenz++]=x[i];
if(i==q-1) p=q+1;
}
for(int i=p;i<q;i++)
{
if(x[i]=='.')
{
p=i+1;
break;
}
u[lenu++]=x[i];
if(i==q-1) p=q+1;
}
for(int i=p;i<q;i++)
{
if(x[i]==':')
{
p=i+1;
break;
}
v[lenv++]=x[i];
if(i==q-1) p=q+1;
}
for(int i=p;i<q;i++)
{
w[lenw++]=x[i];
if(i==q-1) p=q+1;
}
if(aq==26)
{
//cout<<y<<" q "<<z<<" "<<u<<" "<<v<<" "<<w<<endl;
}
//cout<<y<<" "<<z<<" "<<u<<" "<<v<<" "<<w<<endl;
if(strlen(y)>3||strlen(y)==0||strlen(z)>3||strlen(z)==0||strlen(u)>3||strlen(u)==0||strlen(v)>3||strlen(v)==0||strlen(w)>5||strlen(w)==0) return -1;
//cout<<"qwqw"<<endl;
for(int i=0;i<strlen(y);i++)
{
if(!isd(y[i])) return -1;
}
for(int i=0;i<strlen(z);i++)
{
if(!isd(z[i])) return -1;
}
for(int i=0;i<strlen(u);i++)
{
if(!isd(u[i])) return -1;
}
for(int i=0;i<strlen(v);i++)
{
if(!isd(v[i])) return -1;
}
for(int i=0;i<strlen(w);i++)
{
if(!isd(w[i])) return -1;
}
if(y[0]=='0'&&strlen(y)!=1) return -1;
if(z[0]=='0'&&strlen(z)!=1) return -1;
if(u[0]=='0'&&strlen(u)!=1) return -1;
if(v[0]=='0'&&strlen(v)!=1) return -1;
if(w[0]=='0'&&strlen(w)!=1) return -1;
int a=0,b=0,c=0,d=0,e=0;
for(int i=0;i<strlen(y);i++)
{
a=a*10+y[i]-'0';
}
for(int i=0;i<strlen(z);i++)
{
b=b*10+z[i]-'0';
}
for(int i=0;i<strlen(u);i++)
{
c=c*10+u[i]-'0';
}
for(int i=0;i<strlen(v);i++)
{
d=d*10+v[i]-'0';
}
for(int i=0;i<strlen(w);i++)
{
e=e*10+w[i]-'0';
}
if(!(a<=255&&b<=255&&c<=255&&d<=255&&e<=65535)) return -1;
if(qw==0)
{
for(int i=1;i<=sum1;i++)
{
if(se[i].a==a&&se[i].b==b&&se[i].c==c&&se[i].d==d&&se[i].e==e) return se[i].id;
}
return -2;
}
else
{
for(int i=1;i<=sum1;i++)
{
if(se[i].a==a&&se[i].b==b&&se[i].c==c&&se[i].d==d&&se[i].e==e) return 1;
}
se[++sum1].a=a;
se[sum1].b=b;
se[sum1].c=c;
se[sum1].d=d;
se[sum1].e=e;
se[sum1].id=aq;
return 0;
}
}
int main()
{
freopen("network.in","r",stdin);
freopen("network.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
bool c=0;
scanf("%s",x);
if(x[0]=='S')
{
c=1;
scanf("%s",x);
int as=d(c,i);
if(as==-1) printf("ERR\n");
else if(as==1) printf("FAIL\n");
else printf("OK\n");
}
else
{
scanf("%s",x);
int as=d(c,i);
if(as==-1) printf("ERR\n");
else if(as==-2) printf("FAIL\n");
else printf("%d\n",as);
}
}
}
144行的return 0 没写,re炸了
100-->0
336-->236
SH一等悬了
回复
共 8 条回复,欢迎继续交流。
正在加载回复...