Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<stdio.h>#include<string.h>typedef struct Node{int x, y;Node(){}}Node;int length;Node shuzu[100005];int flag[100005];int tag[100005] = {0};int dead[100005] ;int dfs(int input){for(int i = 0; i < length; i++){if(input==i || flag[i] == 1) continue;if(shuzu[input].x!=shuzu[i].x && shuzu[input].y!=shuzu[i].y) continue;flag[i] = 1;if( tag[i] == -1 || dfs(i)){// tag[i] = input;// dead[input] = i;// if(tag[input]!=-1)return 0;tag[input] = i;return 1;}}return 0;}int main(){scanf("%d", &length);for(int i = 0; i < length; i++) scanf("%d%d", &shuzu[i].x, &shuzu[i].y);