View Code of Problem 17

#include <stdio.h>
#include <string.h>

int n,m;
int visit[50000][50000];
int map[50000][50000];
int max=0;
int maxcnt=0;
int climb(int a,int b,int cnt)
{
	if(map[a][b]==max)
	{
		if(cnt>maxcnt)
		{
			maxcnt=cnt;
		}
		return 1;
	}
	else
	{
		if(a+1<n&&visit[a+1][b]!=1&&map[a+1][b]>map[a][b])
		{
			visit[a][b]=1;
			climb(a+1,b,cnt+1);
			visit[a][b]=0;
		}
			if(a-1>=0&&visit[a-1][b]!=1&&map[a-1][b]>map[a][b])
		{
			visit[a][b]=1;
			climb(a-1,b,cnt+1);
			visit[a][b]=0;
		}
			if(b+1<m&&visit[a][b+1]!=1&&map[a][b+1]>map[a][b])
		{
			visit[a][b]=1;
			climb(a,b+1,cnt+1);
			visit[a][b]=0;
		}
			if(b-1>=0&&visit[a][b-1]!=1&&map[a][b-1]>map[a][b])
		{
			visit[a][b]=1;
			climb(a,b-1,cnt+1);
			visit[a][b]=0;
		}
	}
	if(cnt>maxcnt)
	{
		maxcnt=cnt;
	}
}


int main()
{
	scanf("%d%d",&n,&m);
	int mini=0,minj=0,min=9999;
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<m;j++)
		{
			scanf("%d",&map[i][j]);
			if(map[i][j]>max)
			{
				max=map[i][j];
			}
			if(map[i][j]<min)
			{
				min=map[i][j];
				mini=i;
				minj=j;
			}
		}
	}
	climb(mini,minj,0);
	printf("%d\n",maxcnt);
	
	
	
 } 
/*
Main.c: In function 'climb':
Main.c:50:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/libc.a(loadmsgcat.o): in function `_nl_load_domain':
(.text+0x43): relocation truncated to fit: R_X86_64_PC32 against symbol `__libc_multiple_threads' defined in COMMON section in /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/libc.a(libc_multiple_threads.o)
/usr/bin/ld: (.text+0x2cd): relocation truncated to fit: R_X86_64_PC32 against symbol `__libc_multiple_threads' defined in COMMON section in /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/libc.a(libc_multiple_threads.o)
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/libc.a(abort.o): in function `abort':
(.text.unlikely+0x33): relocation truncated to fit: R_X86_64_PC32 against symbol `__libc_multiple_threads' defined in COMMON section in /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/libc.a(libc_multiple_threads.o)
/usr/bin/ld: (.text.unlikely+0xe3): relocation truncated to fit: R_X86_64_PC32 against symbol `__libc_multiple_threads' defined in COMMON section in /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/libc.a(libc_multiple_threads.o)
/usr/bin/ld: (.text.unlikely+0x13c): relocation truncated to fit: R_X86_64_PC32 against symbol `__libc_multiple_threads' defined in COMMON section in /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/libc.a(libc_multiple_threads.o)
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/libc.a(isoc99_scanf.o): in function `__isoc99_scanf':
(.text+0xa0): relocation truncated to fit: R_X86_64_PC32 against symbol `__libc_multiple_threads' defined in COMMON section in /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/libc.a(libc_multiple_threads.o)
/usr/bin/ld: (.text+0x162): relocation truncated to fit: R_X86_64_PC32 against symbol `__libc_multiple_threads' defined in COMMON section in /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/libc.a(libc_multiple_threads.o)
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/libc.a(isoc99_scanf.o): in function `__isoc99_scanf.cold.0':
(.text.unlikely+0x23): relocation truncated to fit: R_X86_64_PC32 against symbol `__libc_multiple_threads' defined in COMMON section in /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/libc.a(libc_multiple_threads.o)
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/libc.a(iofclose.o): in function `_IO_new_fclose':
(.text+0xdb): relocation truncated to fit: R_X86_64_PC32 against symbol `__libc_multiple_threads' defined in COMMON section in /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/libc.a(libc_multiple_threads.o)
/usr/bin/ld: (.text+0x15c): relocation truncated to fit: R_X86_64_PC32 against symbol `__libc_multiple_threads' defined in COMMON section in /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/libc.a(libc_multiple_threads.o)
/usr/bin/ld: (.text+0x1a0): additional relocation overflows omitted from the output
collect2: error: ld returned 1 exit status
*/

Double click to view unformatted code.


Back to problem 17