⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pku2799.cpp

📁 这是ACM 方面的资料 是PKU的 北京大学的出来的
💻 CPP
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -