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 |
大家来找错············为什么WA?请NB人看一下#include<stdio.h> #include<stdlib.h> int height[105][105]; int len[10005]={0}; int R,C; struct node { int i; int j; int b; }h[10005]; int cmp(const void *e1,const void *e2) { struct node *pe1 = (struct node *)e1; struct node *pe2 = (struct node *)e2; return pe1->b - pe2->b; } int f(int a,int q) { int t1=h[q].i; int t2=h[q].j; int flag=0; int d[5]={0}; if(a>height[t1][t2+1]) { d[1]=len[height[t1][t2+1]]+1; flag=1; } if(a>height[t1][t2-1]) { d[2]=len[height[t1][t2-1]]+1; flag=1; } if(a>height[t1+1][t2]) { d[3]=len[height[t1+1][t2]]+1; flag=1; } if(a>height[t1-1][t2]) { d[4]=len[height[t1-1][t2]]+1; flag=1; } int max=0; if(flag==1) { int k; for(k=1;k<=4;k++) if(max<d[k]) max=d[k]; } return max+1; } int main() { int i,j,k,q; for(i=0;i<105;i++) for(j=0;j<105;j++) height[i][j]=50005; scanf("%d %d",&R,&C); k=1; for(i=1;i<=R;i++) for(j=1;j<=C;j++) { scanf("%d",&height[i][j]); h[k].b=height[i][j]; h[k].i=i; h[k].j=j; k++; } k--; qsort(&h[1],k,sizeof(h[1]),cmp); for(q=1;q<=k;q++) len[h[q].b]=f(h[q].b,q); int max=0; for(i=1;i<=k;i++) if(max<len[h[i].b]) max=len[h[i].b]; printf("%d\n",max); } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator