AtCoder Beginner Contestの過去問から、その提出コードの解答例です。
AtCoderとは、コンテストを通じて、プログラミングやアルゴリズムを学習するサービスです。
atcoder.jp
プログラミングコンテストとは、「与えられた問題をいかに素早く、正確に」解くことができるかを競うものです。
「競技プログラミング」を略して、「競プロ」などと呼ばれています。
#C - Connect 6
僕が作成、提出したコードは、以下のとおりです。
/* AtCoder Problems in C++ #C - Connect 6 https://atcoder.jp/contests/abc241/tasks/abc241_c 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; using ll=long long; int main(void){ ll n; cin>>n; vector<string> s(n); for(ll i=0;i<n;i++){ cin>>s[i]; } bool tf=false; ll cnt=0; for(ll i=0;i<n;i++){ for(ll j=0;j<n;j++){ if(tf){ break; } if(i+5<n){ cnt=0; for(ll k=0;k<6;k++){ if(s[i+k][j]=='#'){ cnt++; } } if(cnt>=4){ tf=true; } } if(j+5<n){ cnt=0; for(ll k=0;k<6;k++){ if(s[i][j+k]=='#'){ cnt++; } } if(cnt>=4){ tf=true; } } if((i+5<n) && (j+5<n)){ cnt=0; for(ll k=0;k<6;k++){ if(s[i+k][j+k]=='#'){ cnt++; } } if(cnt>=4){ tf=true; } } if((i-5>=0) && (j+5<n)){ cnt=0; for(ll k=0;k<6;k++){ if(s[i-k][j+k]=='#'){ cnt++; } } if(cnt>=4){ tf=true; } } } } if(tf){ cout<<"Yes"<<endl; }else{ cout<<"No"<<endl; } return 0; }
AtCoder Beginner Contestは、オンラインジャッジによるプログラミングコンテストです。
日本語と英語に対応していて、週末ごとに実施されているみたいです。
https://practice.contest.atcoder.jp/tutorial
アカウントを登録すれば、誰でも参加できます。