大佬们,谁懂啊!
我就去了一个前导0,瞬间从65分变为5分,这还不如不该呢!┗( ▔, ▔ )┛
未改程序:
#include <bits/stdc++.h>
using namespace std;
struct str_dz{
int a,b,c,d,e;
};
int read(int& i,string s){
int res=0;
while(s[i]>='0'&&s[i]<='9'){
res=res*10+(s[i]-'0');
i++;
}
return res;
}
int n,tot,isf,str_s[5]={255,255,255,255,65535};
char str_g[4]={'.','.','.',':'} ;
string s2,s;
vector<str_dz> v1;
vector<int> f;
int find(str_dz dz){
for(int i=0;i<tot;i++){
if(v1[i].a==dz.a&&v1[i].b==dz.b&&v1[i].c==dz.c&&v1[i].d==dz.d&&v1[i].e==dz.e){
return f[i];
}
}
return -1;
}
int main(){
cin >> n;
for(int i=1;i<=n;i++){
cin >> s2 >> s;
isf=0;
int j=0,dz[5];
for(int k=0;k<5;k++){
dz[k]=read(j,s);
if(k<4){
if(s[j]!=str_g[k]) isf=1;
}
if(dz[k]>str_s[k]) isf=1;
j++;
}
str_dz str;
str.a=dz[0],str.b=dz[1],str.c=dz[2],str.d=dz[3],str.e=dz[4];
if(isf==1){
cout << "ERR\n";
continue;
}
if(s2[0]=='S'){
if(find(str)!=-1){
cout << "FAIL\n";
}else{
v1.push_back(str);
f.push_back(i);
tot++;
cout << "OK\n";
}
}else{
int m=find(str);
if(m==-1){
cout << "FAIL\n";
}else{
cout << m << endl;
}
}
}
return 0;
}
改后程序:```cpp #include <bits/stdc++.h> using namespace std; struct str_dz{ int a,b,c,d,e; }; int n,tot,isf,str_s[5]={255,255,255,255,65535}; char str_g[4]={'.','.','.',':'} ; string s2,s; vector<str_dz> v1; vector f; int read(int& i,string s){ int res=0,isk=0; while(s[i]>='0'&&s[i]<='9'){ if(s[i]=='0'&&isk==0) isf=1; if(s[i]>='1'&&s[i]<='9') isk=1; res=res*10+(s[i]-'0'); i++; } return res; } int find(str_dz dz){ for(int i=0;i<tot;i++){ if(v1[i].a==dz.a&&v1[i].b==dz.b&&v1[i].c==dz.c&&v1[i].d==dz.d&&v1[i].e==dz.e){ return f[i]; } } return -1; } int main(){ cin >> n; for(int i=1;i<=n;i++){ cin >> s2 >> s; isf=0; int j=0,dz[5]; for(int k=0;k<5;k++){ dz[k]=read(j,s); if(k<4){ if(s[j]!=str_g[k]) isf=1; } if(dz[k]>str_s[k]) isf=1; j++; } str_dz str; str.a=dz[0],str.b=dz[1],str.c=dz[2],str.d=dz[3],str.e=dz[4]; if(isf==1){ cout << "ERR\n"; continue; } if(s2[0]=='S'){ if(find(str)!=-1){ cout << "FAIL\n"; }else{ v1.push_back(str); f.push_back(i); tot++; cout << "OK\n"; } }else{ int m=find(str); if(m==-1){ cout << "FAIL\n"; }else{ cout << m << endl; } } } return 0; }
求助!求助!求助!