#include using namespace std; const int N = 20; int n; /* 4 1 2 1 3 1 4 1 5 */ struct Node { int x, y; } b[N]; // 表示区域x和区域y之间存在公共边 bool check(int i, int j, int k, int p, int q) { vector color = {0, i, j, k, p, q}; for (int x = 1; x <= n; x++) { if (color[b[x].x] == color[b[x].y]) return false; } return true; } int ans; int main() { cin >> n; for (int i = 1; i <= n; i++) cin >> b[i].x >> b[i].y; // 5个区域,4个颜色,构建每一组组合,不管是否合理都列出来 for (int i = 1; i <= 4; i++) for (int j = 1; j <= 4; j++) for (int k = 1; k <= 4; k++) for (int p = 1; p <= 4; p++) for (int q = 1; q <= 4; q++) { // 此时的i,j,k,p,q表示5个区域的颜色 // 判断是不是合理 if (check(i, j, k, p, q)) ans++; } cout << ans << endl; return 0; }