CF864A Fair Game

題意翻譯

CF864A Fair Gamehtml

題意: Petya和Vasya決定玩一個遊戲,他們有偶數張卡片,每張卡片上一個數字.每人選擇一個數字(兩我的選擇的數字不能相同),選擇了該數字就意味着須要把寫有這個數字的全部卡片都拿走.Petya和Vasya認爲,這個遊戲是公平的,當僅當兩我的能夠拿走所有的卡片而且兩人拿走的卡片數相同,不然這個遊戲就是不公平的.ios

讀入: 第一行:卡片數量n(2<=n<=100),接下來n行每行一個數字表示第i張卡片上的數字ide

輸出: 第一行表示遊戲是否公平,公平輸出YES,不公平輸出NO;若遊戲公平,第二行輸出兩個數字表示Petya和Vasya分別選擇的數字this

Translated by 凌幽spa

題目描述

Petya and Vasya decided to play a game. They have nn cards ( nn is an even number). A single integer is written on each card.翻譯

Before the game Petya will choose an integer and after that Vasya will choose another integer (different from the number that Petya chose). During the game each player takes all the cards with number he chose. For example, if Petya chose number 55 before the game he will take all cards on which 55 is written and if Vasya chose number 1010before the game he will take all cards on which 1010 is written.code

The game is considered fair if Petya and Vasya can take all nn cards, and the number of cards each player gets is the same.htm

Determine whether Petya and Vasya can choose integer numbers before the game so that the game is fair.blog

輸入輸出格式

輸入格式:

 

The first line contains a single integer nn ( 2<=n<=1002<=n<=100 ) — number of cards. It is guaranteed that nn is an even number.遊戲

The following nn lines contain a sequence of integers a_{1},a_{2},...,a_{n}a1,a2,...,an (one integer per line, 1<=a_{i}<=1001<=ai<=100 ) — numbers written on the nn cards.

 

輸出格式:

 

If it is impossible for Petya and Vasya to choose numbers in such a way that the game will be fair, print "NO" (without quotes) in the first line. In this case you should not print anything more.

In the other case print "YES" (without quotes) in the first line. In the second line print two distinct integers — number that Petya should choose and the number that Vasya should choose to make the game fair. If there are several solutions, print any of them.

 

輸入輸出樣例

輸入樣例#1: 複製
4
11
27
27
11
輸出樣例#1: 複製
YES
11 27
輸入樣例#2: 複製
2
6
6
輸出樣例#2: 複製
NO
輸入樣例#3: 複製
6
10
20
30
20
10
20
輸出樣例#3: 複製
NO
輸入樣例#4: 複製
6
1
1
2
2
3
3
輸出樣例#4: 複製
NO

說明

In the first example the game will be fair if, for example, Petya chooses number 1111 , and Vasya chooses number 2727. Then the will take all cards — Petya will take cards 11 and 44 , and Vasya will take cards 22 and 33 . Thus, each of them will take exactly two cards.

In the second example fair game is impossible because the numbers written on the cards are equal, but the numbers that Petya and Vasya should choose should be distinct.

In the third example it is impossible to take all cards. Petya and Vasya can take at most five cards — for example, Petya can choose number 1010 and Vasya can choose number 2020 . But for the game to be fair it is necessary to take 66 cards.

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define MAXN 101
using namespace std;
int n,sum,ans;
int num[MAXN],vis[MAXN];
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        scanf("%d",&num[i]);
        vis[num[i]]++;
    }
    for(int i=1;i<=100;i++){
        if(vis[i]){
            sum++;
            if(ans!=0&&vis[i]!=ans){ cout<<"NO";return 0; }
            ans=vis[i];
            if(sum>2){ cout<<"NO";return 0; }
        }
    }
    if(sum!=2){ cout<<"NO";return 0; }
    cout<<"YES"<<endl;
    for(int i=1;i<=100;i++)
        if(vis[i])    cout<<i<<" ";
}
相關文章
相關標籤/搜索