Traveling

Problem J: Traveling

Time Limit: 1 Sec  Memory Limit: 32 MB

Description

SH likes traveling around the world. When he arrives at a city, he will ask the staff about the number of cities that connected with this city directly. After traveling around a mainland, SH will collate data and judge whether the data is correct.

 A group of data is correct when it can constitute an undirected graph.

 

Input

There are multiple test cases. The first line of each test case is a positive integer N (1<=N<=10000) standing for the number of cities in a mainland. The second line has N positive integers a1, a2, ...,an. ai stands for the number of cities that connected directly with the ith city. Input will be ended by the END OF FILE.

Output

If a group of data is correct, output "YES" in one line, otherwise, output "NO".

Sample Input

8
7 7 4 3 3 3 2 1
10
5 4 3 3 2 2 2 1 1 1

Sample Output

NO
YES

上代码

 

#include<stdio.h>
 
int a[12345];
 
int main(){
    int n,i,j,flag;
    while(~scanf("%d",&n))
    {
        flag=1;
        for(i=0;i<n;i++)
            scanf("%d",&a[i]);
        for(i=0;i<n;i++)
        {
            for(j=i+1;j<n;j++)
            {
                if(a[i]&&a[j]){
                    a[i]--;
                    a[j]--;
                }
            }
            if(a[i]!=0)
            {
                printf("NO\n");
                flag=0;
                break;
            }
        }
        if(flag) printf("YES\n");
    }
    return 0;
} 
 
/**************************************************************
    Problem: 10
    User: Hui
    Language: C
    Result: Accepted
    Time:100 ms
    Memory:1012 kb
****************************************************************/

 

posted @ 2014-06-30 11:31  一只快乐的程序猿[Hui]  阅读(214)  评论(0编辑  收藏  举报