首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> C++ 入門

Codeforces Round #269 Div2 A:六根木棍判斷熊/大象/外星人

     編輯:C++ 入門

Codeforces Round #269 Div2 A:六根木棍判斷熊/大象/外星人

給定 6 根木棍長度 (1-9),四根等長做腿,剩兩根做頭身。熊:頭 < 身;大象:頭 = 身;否則外星人。保證不同時滿足熊和大象。

解法:計數 + 判斷

  1. 統計每長度出現次數 cnt[10]。
  2. 找出現 ≥ 4 的長度作為腿,扣除 4 根。
  3. 若無 ≥ 4 → Alien。
  4. 剩餘兩根:若相等 → Elephant,否則 → Bear。

C++ 代碼


#include 
using namespace std;
int main() {
    map cnt;
    for(int i=0;i<6;i++) { int x; cin>>x; cnt[x]++; }
    int leg = -1;
    for(auto &p : cnt) if(p.second >= 4) { leg = p.first; p.second -= 4; break; }
    if(leg == -1) { cout << "Alien\n"; return 0; }
    vector rem;
    for(auto &p : cnt) while(p.second--) rem.push_back(p.first);
    if(rem.size() == 2 && rem[0] == rem[1]) cout << "Elephant\n";
    else cout << "Bear\n";
    return 0;
}

邊界情況

  • 如 4 4 4 4 4 4:腿用 4 根 4,剩 2 根 4 → Elephant。
  • 如 4 4 4 4 5 5:腿 4,剩 5 5 → Elephant。
  • 如 4 4 4 4 5 6:腿 4,剩 5 6 → Bear。
  • 如 1 2 3 4 5 6:無 ≥ 4 → Alien。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved