題意翻譯
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.
輸入輸出樣例
說明
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<<" "; }