#include <cstdint> #include <iostream> #include <cstdio> #include <vector> using namespace std; bool check_number(const vector<int>& vec){ for(const int& num : vec){ if(num < 0 || num > 255) return false; } return true; } bool check_mask(const vector<int>& vec){ uint32_t bin = 0; for(const int& num : vec) bin = (bin << 8) + num; bin = ~bin+1 & ~bin; if(bin==0) return true; return false; } bool same_net(const vector<int>& mask, const vector<int>& ip1, const vector<int>& ip2){ for(int i=0; i<4; ++i){ if((ip1[i] & mask[i]) != (ip2[i] & mask[i])) return false; } return true; } int main() { vector<int> mask(4); scanf("%d.%d.%d.%d", &mask[0], &mask[1], &mask[2], &mask[3]); vector<int> ip1(4); scanf("%d.%d.%d.%d", &ip1[0], &ip1[1], &ip1[2], &ip1[3]); vector<int> ip2(4); scanf("%d.%d.%d.%d", &ip2[0], &ip2[1], &ip2[2], &ip2[3]); if(!check_number(mask) || !check_mask(mask) || !check_number(ip1) || !check_number(ip2)){ cout << 1 << endl; return 0; } if(same_net(mask, ip1, ip2)){ cout << 0 << endl; }else{ cout << 2 << endl; } return 0; } // 64 位输出请用 printf("%lld")