stary_yan的博客

数据爱好者。

couple

Description N couples are standing in a circle, numbered consecutively
clockwise from 1 to 2N. Husband and wife do not always stand together.
We remove the couples who stand together until the circle is empty or
we can’t remove a couple any more.

Can we remove all the couples out of the circle?

Input There may be several test cases in the input file. In each case,
the first line is an integer N(1 <= N <= 100)—-the number of
couples. In the following N lines, each line contains two integers
—- the numbers of each couple. N = 0 indicates the end of the input.

Output Output “Yes” if we can remove all the couples out of the
circle. Otherwise, output “No”.

Sample Input 4 1 4 2 3 5 6 7 8

2 1 3 2 4

6 1 12 2 11 3 10 4 9 5 6 7 8

7 1 14 4 13 2 3 5 10 12 11 6 9 7 8

0 Sample Output Yes No Yes Yes

#include <stdio.h>

#define MAXn (1000*2)

int s[MAXn], q[MAXn];

int main() {
    int a, b, n, p, i;
    for (scanf("%d", &n); n > 0; scanf("%d", &n)) {
        for (i = 0; i < n; ++i) {
            scanf("%d%d", &a, &b);
            q[a-1] = q[b-1] = i;
        }
        p = 0;
        n *= 2;
        for (i = 0; i < n; ++i)
            if (p > 0 && s[p-1] == q[i])//借用一个s数组来判断是否相邻的数字相同。
                --p;
            else
                s[p++] = q[i];
        if (p > 0)//只有p小于0时,才能yes
            printf("No\n");
        else
            printf("Yes\n");
    }
    return 0;
}
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/stary_yan/article/details/49915519
个人分类: c语言编程
想对作者说点什么? 我来说一句

DP/DP COUPLE 快速使用教程

2013年12月08日 3.47MB 下载

Couple filter

2010年10月18日 1018KB 下载

没有更多推荐了,返回首页

不良信息举报

couple

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭