pku2799.cpp
来自「这是ACM 方面的资料 是PKU的 北京大学的出来的」· C++ 代码 · 共 57 行
CPP
57 行
#include <stdio.h>
int IP[1001][4];
int N;
int GetBit(int k, int *p)
{
int ans;
ans = p[k / 8];
ans &= (1 << (k % 8));
return ans;
}
int main()
{
int N, i, j, end;
int Mask[4];
int found = 0;
scanf("%d", &N);
for (i = 0; i < N; i++)
{
scanf("%d.%d.%d.%d", &IP[i][3], &IP[i][2], &IP[i][1], &IP[i][0]);
}
for (i = 31; i >= 0; i--)
{
for (j = 0; j < N; j++)
{
if (GetBit(i, IP[0]) != GetBit(i, IP[j]))
{
found = 1;
break;
}
}
if (found)
{
break;
}
}
end = i;
for (i = 0; i < 4; i++)
{
Mask[i] = 0;
}
for (i = 31; i > end; i--)
{
Mask[i / 8] |= (1 << (i % 8));
}
for (i = 0; i < 4; i++)
{
IP[0][i] &= Mask[i];
}
printf("%d.%d.%d.%d\n", IP[0][3], IP[0][2], IP[0][1], IP[0][0]);
printf("%d.%d.%d.%d\n", Mask[3], Mask[2], Mask[1], Mask[0]);
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?