代码全WA
  • 板块学术版
  • 楼主jiangjiangQwQ
  • 当前回复15
  • 已保存回复15
  • 发布时间2023/1/19 19:29
  • 上次更新2023/10/24 03:35:17
查看原帖
代码全WA
590609
jiangjiangQwQ楼主2023/1/19 19:29

#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<stack>
const int MAX=1e6+3;
using namespace std;
string s[1005];
int n,t[4],pt[4],f=1; 
void otc(int &a,int &b,int &c,int &d){
	d--;
	if(d==-1){
		d=255;
		c--;
	}if(c==-1){
		c=255;
		b--;
	}if(b==-1){
		b=255;
		a--;
	} a=max(a,0);
	return;
}void otc_2(int &a,int &b,int &c,int &d){
	d++;
	if(d==256){
		d=0;
		c++;
	}if(c==256){
		c=0;
		b++;
	}if(b==256){
		b=0;
		a++;
	} a=min(a,255);
	return;
}
void sub(string str){
	int d1=str.find(".",0),d2=str.find(".",d1+1),d3=str.find(".",d2+1),d4=str.find(".",d3+1);
	string s1=str.substr(0,d1),s2=str.substr(d1+1,d2-d1-1),s3=str.substr(d2+1,d3-d2-1),s4=str.substr(d3+1,d4-d3-1);
	t[1]=stoi(s1);t[2]=stoi(s2);t[3]=stoi(s3);t[4]=stoi(d4);
	return; 
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>s[i];
	}sort(s+1,s+n+1);
	for(int i=1;i<=n;i++){
		sub(s[i]);
		if(f==1){
			cout<<"ban 0.0.0.0-";
			otc(t[1],t[2],t[3],t[4]);
			cout<<t[1]<<"."<<t[2]<<"."<<t[3]<<"."<<t[4]<<endl;
		}else{
			otc(t[1],t[2],t[3],t[4]);otc(t[1],t[2],t[3],t[4]);
			if(t[1]==pt[1]&&t[2]==pt[2]&&t[3]==pt[3]&&t[4]==pt[4]){
				otc_2(t[1],t[2],t[3],t[4]);
				cout<<t[1]<<"."<<t[2]<<"."<<t[3]<<"."<<t[4]<<endl;
			}else{
				otc_2(t[1],t[2],t[3],t[4]);
				cout<<pt[1]<<"-"<<t[1]<<"."<<pt[2]<<"-"<<t[2]<<"."<<pt[3]<<"-"<<t[3]<<"."<<pt[4]<<"-"<<t[4]<<endl;
			}
		}
	}
	sub(s[n]);
	otc_2(t[1],t[2],t[3],t[4]);
	cout<<t[1]<<"."<<t[2]<<"."<<t[3]<<"."<<t[4]<<".255.255.255"<<endl;
	return 0;
}

2023/1/19 19:29
加载中...