| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
那仅仅是在你自己的机器上运行"绝对没有问题"而已In Reply To:我是也觉得应该是那样的,可是我的程序运行时绝对没有任何问题,不知道哪位牛人看看? Posted by:forceil at 2006-12-06 18:54:29 > #include <iostream.h>
> int data[100][100];
> int x=0;
> int y=0;
> int length=1;
> int temp=0;
>
> void Find(int * maxX,int * maxY)
> {
> int t=0;
> int i=0;
>
> for(i=0;i<x;i++)
> for(int j=0;j<y;j++)
> {
> if(data[i][j]>t)
> {
> *maxY=j;
> *maxX=i;
> t=data[i][j];
> }
> }
> }
> int run(int m,int n)
> {
> int len=0;
> int ted=0;
> int t=0;
> while(true)
> {
> switch(t)
> {
> case 0:
> if(m==0)
> break;
> if(data[m-1][n]>=data[m][n])
> break;
> if(data[m-1][n]<=0)
> {
> ted=-data[m-1][n];
> }
> else
> ted=run(m-1,n);
> break;
> case 1:
> if(n==(y-1))
> break;
> if(data[m][n+1]>=data[m][n])
> break;
> if(data[m][n+1]<=0)
> {
> ted=-data[m][n+1];
> }
> else
> ted=run(m,n+1);
> break;
> case 2:
> if(m==(x-1))
> break;
> if(data[m+1][n]>=data[m][n])
> break;
> if(data[m+1][n]<=0)
> {
> ted=-data[m+1][n];
> }
> else
> ted=run(m+1,n);
> break;
> case 3:
> if(n==0)
> break;
> if(data[m][n-1]>=data[m][n])
> break;
> if(data[m][n-1]<=0)
> ted=-data[m][n-1];
> else
> ted=run(m,n-1);
> break;
> default:
> data[m][n]=- ++len;
> break;
> }
> if(t==4)
> break;
> t++;
>
> if(len<ted)
> len=ted;
> ted=0;
> }
> return len;
> }
> void main()
> {
> cin>>x>>y;
> for(int i=0;i<x;i++)
> for(int j=0;j<y;j++)
> cin>>data[i][j];
>
> for(i=0;i<x*y;i++)
> {
> int m,n;
> Find(&m,&n);
> if(data[m][n]>0)
> temp=run(m,n);
> else
> continue;
> if(temp>length)
> length=temp;
> }
>
> cout<<length<<endl;
>
> }
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator