川のブログ

川の適当気ままなブログです。 

AOJ 0517 Longest Steps

こんにちは川です。

今回は、ひたすら探索している感じですかね。

探索している際、空白のカードの数の回数だけ、

出てきていない数が出た時

探索終了しないようにしています。

 

ソースコード

 

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n,m;
    while(cin>>n>>m,n,m){
        bool num[100000]={};
        int co=0;
        for(int i=0,x;i<m;i++){
            cin>>x;
            if(x==0)co++;
            else num[x]=1;
        }
        int ans=0;
        for(int i=1;i<=n;i++){
            if(num[i]){
                for(int j=i+1,now=1,fin=co;;j++,now++){
                    if(!num[j]&&fin>0)fin--;
                    else if(!num[j]){
                        ans=max(ans,now);
                        break;
                    }
                }
            }
        }
        cout<<ans<<endl;
    }