题意:
判断交换生是否两两交换,即凡有a-b必有b-a
思路:
用一个数组存储ab的情况a-b就+1b-a就-1,如果最后有非0的就是不行
代码:
#include<cstdio>
#include<cstring>
using namespace std;
int g[1000][1000], n;
int main() {
while(scanf("%d", &n) == 1 && n) {
int x, y;
memset(g, 0, sizeof(g));
for(int i=0; i<n; i++) {
scanf("%d%d", &x, &y);
if(x > y)
g[x][y]++;
else g[y][x]--;
}
int flag = 1;
for(int i=0; i<1000; i++)
for(int j=0; j<1000; j++)
if(g[i][j] != 0) flag = 0;
if(flag) printf("YES\n");
else printf("NO\n");
}
return 0;
}