信息学奥赛C++语言: 数字方阵
【題目描述】
周末,爸爸媽媽帶著楠楠去商場玩,正好碰上了商場在舉辦有獎(jiǎng)競答活動(dòng),而且根據(jù)問題的難度不同,獎(jiǎng)品的價(jià)值也有不同。聰明愛動(dòng)腦的楠楠挑了一個(gè)難度最大的問題來挑戰(zhàn)自己。最后他贏得了豐厚的獎(jiǎng)品和熱烈的掌聲。
這個(gè)問題是:在一個(gè)數(shù)字方陣中,隨機(jī)放置了0~9的數(shù)字。我們把由數(shù)字1~9的組成的串稱為非零串(不含0的數(shù)字串)。例如02303230 ,這組數(shù)據(jù)中有23 和323兩種非零串。其中長度最長的非零串為323。
已知一個(gè)NM(1<=N,M<=1000)的數(shù)字方陣,求方陣第k行的最長非零串的長度。
如下圖:在這個(gè)48的方陣中,第2行的最長非零串長度為323。
由于這個(gè)方陣太大了,很多人都不敢一試。這時(shí)候,楠楠拿出他的隨身筆記本,編了一個(gè)程序,瞬間就秒殺了它!
如果是你,你能解決嗎?
【輸入】
輸入數(shù)據(jù)有若干行。
第一行,有三個(gè)整數(shù)N、M(1<=N、M<=1000)和K(1<=K<=N),其中N、M分別表示這個(gè)數(shù)字方陣中行數(shù)和列數(shù)。K表示求數(shù)字方陣第K行的最長數(shù)字串長度。
接下來有N行,每行M個(gè)0~9的數(shù)字,每個(gè)數(shù)字間用一個(gè)空隔隔開。
*
【輸出】*
輸出第K行的最長非零串的長度。
【輸入樣例】
4 9 3
9 2 0 0 3 4 2 5 0
4 0 2 3 0 3 2 3 1
3 8 3 2 9 0 7 5 1
1 0 3 1 0 0 6 6 0
【輸出樣例】
5
代碼
#include<bits/stdc++.h> using namespace std; int a,n,k,m,l; int main() {cin>>a>>n>>k;k=k-1;long long b[a][n];for(int i=0;i<a;i++){for(int j=0;j<n;j++)cin>>b[i][j];}for(int i=0;i<n;i++){if(b[k][i]!=0)l++;else l=0;if(l>m)m=l;}cout<<m<<endl; }總結(jié)
以上是生活随笔為你收集整理的信息学奥赛C++语言: 数字方阵的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 烤鸡(洛谷-P2089)
- 下一篇: 信息学奥赛一本通C++语言——1048: