Go: package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
)

var sc = bufio.NewScanner(os.Stdin)

func nextInt() int {
	sc.Scan()
	n, _ := strconv.Atoi(sc.Text())
	return n
}

func main() {
	sc.Split(bufio.ScanWords)
	N := nextInt()
	max, cnt := 0, 0
	for i := 0; i < N; i++ {
		cnt++
		if nextInt() == 0 {
			cnt = 0
		}
		if cnt > max {
			max = cnt
		}
	}
	fmt.Println(max + 1)
}

C++: // http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0642



#include<iostream>
 using namespace std; //標準名前空間を使用


    int main(){

    int sugorokunomasu[1000] ;
    int N ;
    int saidairenzokusuucount ; // 1の最大連続数カウント
    int saidairenzokusuucountmax ; // 1の最大連続数の最大値

    cin >> N ;


            for (int i = 0; i <= N ; i = i + 1 ){
            　cin >> sugorokunomasu[i] ; //すごろくのマスの読み込み

                    if(sugorokunomasu[i] == 1){ // すごろくのマスに1が出てきた場合
                        saidairenzokusuucount =  saidairenzokusuucount + 1 ; //1の最大連続数カウントに1を+

                    }else{ //すごろくのマスに0が出てきた場合

                        if(saidairenzokusuucount > saidairenzokusuucountmax) // 1の最大連続数の最大値を更新されているかの判定
                        { 
                        saidairenzokusuucountmax = saidairenzokusuucount ; //更新されていれば、1の最大連続数の最大値を更新
                        }else{
                        //最大値を更新しない場合は何もしない
                        }

                    saidairenzokusuucount = 0 ; //1の最大連続数カウントをフラッシュして0に
                    
                    }

                


            }


    cout << saidairenzokusuucountmax + 1 << endl ;
    }

C++: #include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
int main() {
	int n, A[101], ca = 0, i, temp=0;
	cin >> n;
	for (i = 0; i < n; i++) {
		cin >> A[i];
	}
	for (i = 0; i < n; i++) {
		if (1 == A[i]) {
			ca++;
			temp = max(temp, ca);
		}
		else {
			ca = 0;
		}
	}
	printf("%d\n", temp+1);
	return EXIT_SUCCESS;
}