#include<iostream> #include<vector> using namespace std; int getNum(vector<vector<int>> data, int row, int col) { int court = 0; for (int i = row,j=col;; ) { if (i + 1 != data.size() && data[i + 1][j] - data[i][j] == 1) { i++; court++; } else if (i - 1 >= 0 && data[i - 1][j] - data[i][j] == 1) { i--; court++; } else if (j - 1 >= 0 && data[i][j - 1] - data[i][j] == 1) { j--; court++; } else if (j + 1 != data[i].size() && data[i][j + 1] - data[i][j] == 1) { j++; court++; } else { break; } } return court; } int main(){ int row, col; while (cin >> row >> col) { vector<vector<int>> data(row);//设置二维数组行数 int get=0,court=0,temp; for (int i = 0; i < row; i++)//初始化每行列数 { data[i].resize(col); } for (int i = 0; i < row; i++)//二维数组赋值 { for (int j = 0; j < col; j++) { cin >> get; data[i][j] = get; } } for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { if(court< getNum(data, i, j))court=getNum(data, i, j); } } cout << court<<endl; } } |
Double click to view unformatted code.