寝癖頭の解法

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

AtCoder Problems in C++ #B - たのしいカードゲーム (Card Game is Fun)

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

#B - たのしいカードゲーム (Card Game is Fun)

https://www.ioi-jp.org/joi/2011/2012-ho-prob_and_sol/2012-ho.pdf#page=4

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

/*
AtCoder Problems in C++
#B - たのしいカードゲーム (Card Game is Fun)
https://www.ioi-jp.org/joi/2011/2012-ho-prob_and_sol/2012-ho.pdf#page=4
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include<bits/stdc++.h>
using namespace std;
int main(void){
  int n,m;
  cin>>n>>m;
  vector<int> a(n),b(m);
  for(int i=0;i<n;i++){
    cin>>a[i];
  }
  for(int i=0;i<m;i++){
    cin>>b[i];
  }
  int ans=0;
  for(int i=0;i<m;i++){
    int j=i;
    int k=0;
    while(j<m){
      while(k<n && b[j]!=a[k]){
        k++;
      }
      if(k==n){
        break;
      }
      j++;
      k++;
    }
    ans=max(ans,j-i);
  }
  cout<<ans<<endl;
  return 0;
}