ã¡ãã£ã¨å®è£ ã大å¤ãªã®ã§ãé å¼µã£ã¦å®è£ ãããï¼
åé¡æ¦è¦
太éåã¨è±åããã大å¯è±ªã模ããã²ã¼ã ãããã
ã®æ¸ãããã«ã¼ããã
æãã¤ã太éåã¨è±åããã«é
ãã太éåã«é
ãããã«ã¼ãã«æ¸ããã
åã®æ°å¤ãä¸ããããã2 人ã§æ¬¡ã®ãããªã²ã¼ã ããããæåã®æçªã¯å¤ªéåã§ããã
- æçªã®è ãæã£ã¦ããã«ã¼ãã®ãã¡ãæå°ã®æ°ã®æ¸ãããã«ã¼ããå ´ã«åºã
- ãã以éã¯ãæçªã移ã£ã¦ãããèªåã®æã£ã¦ããã«ã¼ãã®ãã¡ãå ´ã«åºã¦ããææ°ã®ã«ã¼ãã®æ°ããã大ãããããªãæå°ã®æ°ã®æ¸ãããã«ã¼ããåºã
- åºããªãå ´åã¯ãã¹ã¨ããå ´ã«åºã¦ããã«ã¼ãã¯ãªããªã£ãä¸ã§ãæçªãå ¥ãæ¿ãã
- 太éåã¾ãã¯è±åããã®ããããã®ææã¡ã®ã«ã¼ãããªããªã£ãç¬éã«ã²ã¼ã ãçµäºãã
ã²ã¼ã ãçµäºããã¨ãã«ãç¸æã®æã£ã¦ããã«ã¼ãã®ææ°ãããã®ãã¬ã¤ã¤ã¼ã®å¾ç¹ã¨ãªãã太éåã¨è±åããã®ã²ã¼ã çµäºå¾ã®å¾ç¹ãæ±ããã
å¶ç´
èãããã¨
å¶ç´ã«ããã ã®ä¸éå¤ã 100 ã¨å°ããã®ã§ãæç´ãªå®è£
ã§æ§ããªããã ãããã®æç´ãªå®è£
ãæ¡å¤é£ãããããã§ã¯ã次ã®ãããªé¢æ°ãå®ç¾©ãããã¨ã«ããï¼C++ï¼ã
// cards ã®æ°ã®ãã¡ãaite ããã大ããæå°ã®æ°ãè¿ãï¼åå¨ããªãå ´å㯠0 ãè¿ãï¼ // cards ããããã®æ°ãé¤å»ããï¼åå¨ããªãå ´åã¯ä½ãããªãï¼ int choose(vector<int> &cards, int aite = 0) { int res; for (int i = 0; i < cards.size(); i++) { if (cards[i] > aite) { res = cards[i]; cards.erase(cards.begin() + i); return res; } } return 0; }
ããã§ãå¼æ° cards
ã«å¯¾ãã¦ããå ´ã«åºããã«ã¼ãã®æ°ãé¤å»ãããã¨ããæä½ãè¡ããããåç
§æ¸¡ãã«ãã¦ããã
ãã®ãããªé¢æ°ãç¨æãã¦ããã°ãã·ãã¥ã¬ã¼ã·ã§ã³ã¯æ¯è¼çç°¡åã«æ¸ããããã¹ããå ´åã§ãã£ã¦ããç¸æã 0 ã¨ããæ°ã®ã«ã¼ããå ´ã«åºãããã¨ã¿ãªããã¨ã¨ããï¼ãã ããææã¡ã®ã«ã¼ãã®ææ°ã¯æ¸ããªãï¼ãããããã°ããã¹ãã次ã®æçªã®ãã¬ã¤ã¤ã¼ã®è¦ç¹ã§ã¯ãèªåã®ææã¡ã®æå°ã®æ°ã®ã«ã¼ããåºãã°è¯ããã¨ãããã¨ã«ãªãã
ã³ã¼ã
#include <bits/stdc++.h> using namespace std; // cards ã®æ°ã®ãã¡ãaite ããã大ããæå°ã®æ°ãè¿ãï¼åå¨ããªãå ´å㯠0 ãè¿ãï¼ // cards ããããã®æ°ãé¤å»ããï¼åå¨ããªãå ´åã¯ä½ãããªãï¼ int choose(vector<int> &cards, int aite = 0) { int res; for (int i = 0; i < cards.size(); i++) { if (cards[i] > aite) { res = cards[i]; cards.erase(cards.begin() + i); return res; } } return 0; } int main() { int N; cin >> N; vector<int> taro(N), hanako; for (int i = 0; i < N; i++) cin >> taro[i]; sort(taro.begin(), taro.end()); for (int i = 1; i <= N * 2; i++) { // 1, 2, ..., 2N ã®ãã¡ taro ã«å«ã¾ããªããã®ã hanako ã«æ¿å ¥ãã if (find(taro.begin(), taro.end(), i) == taro.end()) hanako.push_back(i); } bool is_taro_turn = true; int num = 0; while (!taro.empty() && !hanako.empty()) { if (is_taro_turn) { num = choose(taro, num); is_taro_turn = false; } else { num = choose(hanako, num); is_taro_turn = true; } } cout << hanako.size() << endl; cout << taro.size() << endl; }