记录编号 |
31801 |
评测结果 |
AAAAAAAAAA |
题目名称 |
IP网络管理员 |
最终得分 |
100 |
用户昵称 |
Truth.Cirno |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.008 s |
提交时间 |
2011-11-03 22:03:00 |
内存使用 |
0.38 MiB |
显示代码纯文本
#include <cstdio>
using namespace std;
int inf[1000][32]={0};
int powint(int num,int level)
{
int temp=1;
while (level)
{
temp=temp*num;
level--;
}
return(temp);
}
int main(void)
{
freopen("networkip.in","r",stdin);
freopen("networkip.out","w",stdout);
int i,j,maxj,m,num,a[4];
bool able=true;
scanf("%d\n",&m);
for (i=0;i<m;i++)
{
scanf("%d.%d.%d.%d\n",&a[0],&a[1],&a[2],&a[3]);
for (j=0;j<4;j++)
{
num=0;
while (a[j])
{
inf[i][(24-j*8)+num]=a[j]%2;
a[j]/=2;
num++;
}
}
}
for (j=0;able&&j<32;j++)
for (i=1;able&&i<m;i++)
if (inf[0][31-j]!=inf[i][31-j])
able=false;
if (j!=32)
j--;
maxj=j;
num=0;
for (i=7,j=0;j<maxj;i--,j++)
{
a[num]+=powint(2,i)*inf[0][31-j];
if (i==0)
{
i=8;
num++;
}
}
printf("%d.%d.%d.%d\n",a[0],a[1],a[2],a[3]);
for (i=0;i<4;i++)
a[i]=0;
num=0;
for (i=7,j=0;j<maxj;i--,j++)
{
a[num]+=powint(2,i);
if (i==0)
{
i=8;
num++;
}
}
printf("%d.%d.%d.%d\n",a[0],a[1],a[2],a[3]);
fclose(stdin);
fclose(stdout);
return(0);
}