📄 1717.cpp
字号:
#include<stdio.h>
#include<string.h>
struct bigint
{
char d[100];
int len;
};
bool bigger(bigint a,bigint b)
{
if(a.len>b.len)return true;
if(a.len<b.len)return false;
if(strcmp(a.d,b.d)>0)return true;
else return false;
}
char graph[100][100];
bigint opt[100][100];
bigint maxn,temp;
int main()
{
int n,m;
int i,j,k;
while(scanf("%d%d",&n,&m))
{
if(n==0 || m==0)break;
for(i=0;i<m;i++)
{
scanf("%s",graph[i]);
}
maxn.d[0]='0';
maxn.d[1]='\0';
maxn.len=1;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
if(graph[i][j]>='0' && graph[i][j]<='9')
{
opt[i][j].d[0]=graph[i][j];
opt[i][j].d[1]='\0';
opt[i][j].len=1;
if(i>0)
{
temp=opt[i-1][j];
if(temp.len==1 && temp.d[0]=='0')temp.len--;
temp.d[temp.len]=graph[i][j];
temp.len++;temp.d[temp.len]='\0';
if(bigger(temp,opt[i][j]))opt[i][j]=temp;
}
if(j>0)
{
temp=opt[i][j-1];
if(temp.len==1 && temp.d[0]=='0')temp.len--;
temp.d[temp.len]=graph[i][j];
temp.len++;temp.d[temp.len]='\0';
if(bigger(temp,opt[i][j]))opt[i][j]=temp;
}
if(bigger(opt[i][j],maxn))maxn=opt[i][j];
}
else
{
opt[i][j].d[0]='0';
opt[i][j].d[1]='\0';
opt[i][j].len=1;
}
}
printf("%s\n",maxn.d);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -