結果

問題 No.3171 Color Restoration
ユーザー mint
提出日時 2025-06-23 14:59:45
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 1,894 bytes
コンパイル時間 2,468 ms
コンパイル使用メモリ 210,920 KB
実行使用メモリ 7,844 KB
最終ジャッジ日時 2025-06-23 14:59:50
合計ジャッジ時間 4,027 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 17 WA * 9
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;
string ja(unordered_set<string> s, string l, string r){
  string j = "00";
  for(auto & e : s){
    if(e == l || e == r) continue;
    else j = e;
  }
  return j;
}
bool so(){
  unordered_set<string> a = {"gray","brown","green","cyan","blue","yellow","orange","red"};
  unordered_set<string> b = {"gray","green","blue","yellow","red"};
  unordered_set<string> c = {"gray","green","cyan","blue","violet","orange","red"};
  string br ="brown", vi = "violet", z = "00";
  unordered_set<string> s;

  for(int i = 0; i < 3; ++i){
    string x; cin >> x;
    s.insert(x);
  }
  if(s.size() == 1) return true;
  if(s.count(br)){
    if(s.count("yellow")){
      string j = ja(s, br, "yellow");
      if(j == z) return false;
      else return true;
    }else if(s.count("cyan")){
      string j = ja(s, br, "cyan");
      if(j == z || j == "orange" || j == vi) return false;
      else return true;
    }else if(s.count("orange")){
      string j = ja(s, br, "orange");
      if(j == z || j == "cyan" || j == vi) return false;
      else return true;
    }else if(s.count(vi)){
      string j = ja(s, br, vi);
      if(j == z || j == "cyan" || j == "orange") return false;
      else return true;
    }
  }else if(s.count(vi)){
    if(s.count("orange")){
      string j = ja(s, vi, "orange");
      if(j == z || j == "cyan" || j == br) return false;
      else return true;
    }else if(s.count("cyan")){
      string j = ja(s, vi, "cyan");
      if(j == z || j == br || j == "orange") return false;
      else return true;
    }else if(s.count(br)){
      string j = ja(s, vi, br);
      if(j == z || j == "cyan" || j == "orange") return false;
      else return true;
    }    
  }
  return false;
}

int main(){
  ios::sync_with_stdio(false);
  cin.tie(0);
  bool bl = so();
  if(bl) cout << "Yes" << '\n';
  else cout << "No" << '\n';
  
  return 0;
}
0