寝癖頭の解法

学習中の覚え書きを投稿、更新していきます。

AtCoder Problems in C++ #B - Bingo

AtCoder Beginner Contest(ABC)の過去問から、その提出コードの解答例です。
AtCoderとは、コンテストを通じて、プログラミングやアルゴリズムを学習するサービスです。
atcoder.jp
プログラミングコンテストとは、「与えられた問題をいかに素早く、正確に」解くことができるかを競うものです。
競技プログラミング」を略して、「競プロ」などと呼ばれています。

#B - Bingo
atcoder.jp

僕が作成、提出したコードは、以下のとおりです。

/*
AtCoder Problems in C++
#B - Bingo
https://atcoder.jp/contests/abc157/tasks/abc157_b
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<stdio.h>
int main(void){
  int n,a[3][3],b[10];
  bool appear[3][3];
  for(int loop=0;loop<3;loop++){
    for(int loop2=0;loop2<3;loop2++){
      scanf("%d",&a[loop][loop2]);
    }
  }
  scanf("%d",&n);
  for(int loop=0;loop<n;loop++){
    scanf("%d",&b[loop]);
  }
  for(int loop=0;loop<n;loop++){
    for(int loop2=0;loop2<n;loop2++){
      appear[loop][loop2]=false;
      for(int loop3=0;loop3<n;loop3++){
        if(a[loop][loop2]==b[loop3]){
          appear[loop][loop2]=true;
        }
      }
    }
  }
  char *ans="No";
  for(int loop=0;loop<3;loop++){
    if(appear[loop][0] && appear[loop][1] && appear[loop][2]){
      ans="Yes";
    }
  }
  for(int loop=0;loop<3;loop++){
    if(appear[0][loop] && appear[1][loop] && appear[2][loop]){
      ans="Yes";
    }
  }
  if(appear[0][0] && appear[1][1] && appear[2][2]){
    ans="Yes";
  }
  if(appear[0][2] && appear[1][1] && appear[2][0]){
    ans="Yes";
  }
  printf("%s\n",ans);
  return 0;
}

AtCoder Beginner Contest(ABC)は、オンラインジャッジによるプログラミングコンテストです。
日本語と英語に対応していて、週末ごとに実施されているみたいです。
https://practice.contest.atcoder.jp/tutorial
アカウントを登録すれば、誰でも参加できます。