예제 #1
0
int main()
{
  int n,k;
  scanf("%d",&n);  //Scanning the number of people in the team
  scanf("%d",&k);  //Scanning the index that has to be executed
  int safe;
  safe=issafe(n,k); //Person at the safe place
  printf("%d",safe); //Output
  return 0;
}
 void dfs(vector<int> &pos, int n, int row) {
     if(row == n) {
         cnt++;
         return ;
     }
     for(pos[row] = 0; pos[row] < n; pos[row]++) {
         if(issafe(pos, n, row)) {
             dfs(pos, n, row + 1);
         }
     }
 }
예제 #3
0
int Solve(int board[][col],int qrow,int qcol)
{
	if ((qcol == col-1) && (qrow == col-1)) // base case
	{
		printf("path is:\n");
		setboard(board, qrow, qcol);
		return 1;
	}
	else
	{ // There are four possible wat to travel up, down, back ,forward but not cross
		if (issafe(board, qrow, qcol)) {
			setboard(board, qrow, qcol);
			printf("set:\n\n");
			display_Board(board);
			printf("\n\n");
			if (Solve(board, qrow + 1,qcol))
			{//down
				printf("1:\n\n");
				display_Board(board);
				printf("\n\n");
				return 1;
			}

			else if (Solve(board, qrow ,qcol+1))
			{//forward
				printf("2:\n\n");
				display_Board(board);
				printf("\n\n");
				return 1;
			}
			else if (Solve(board, qrow-1 ,qcol))
			{//up
				printf("3:\n\n");
				display_Board(board);
				printf("\n\n");
				return 1;
			}
			else if (Solve(board, qrow ,qcol-1))
			{ //backword
				printf("4:\n\n");
				display_Board(board);
				printf("\n\n");//
				return 1;
			}
			unsetboard(board,qrow , qcol);
			printf("unset:\n\n");
			display_Board(board);
			printf("\n\n");
		}
	}
	return 0;
}
예제 #4
0
void islandshelper(int a[5][6], bool visited[5][6], int x, int y)
{
    static int row[] = {-1, -1, -1,  0, 0,  1, 1, 1};
    static int col[] = {-1,  0,  1, -1, 1, -1, 0, 1};
    visited[x][y] = 1;
    for(int i = 0;i<8;i++)
    {
        int c = x+row[i];
        int b = y+col[i];
        if(issafe(a,c,b,visited))
        {
            islandshelper(a,visited,c,b);
        }
    }
}
예제 #5
0
int issafe(int n,int k)  //Safe function is defined
{
    //Using Recursion
  int safe,answer;
  if (n==1)  //Base Case
  {
      return 1;
  }
  else
  {
      safe=issafe(n-1,k);
      answer=(safe+k-1)%n+1;  //The position of the safe person
      return answer;  //Returning the position.
  }

}
예제 #6
0
size_t fmt_urlencoded2(char* dest,const char* src,size_t len,const char* escapeme) {
  register const unsigned char* s=(const unsigned char*) src;
  size_t written=0,i;
  for (i=0; i<len; ++i) {
    if (!issafe(s[i]) || escapeme[str_chr(escapeme,s[i])]==s[i]) {
      if (dest) {
	dest[written]='%';
	dest[written+1]=fmt_tohex(s[i]>>4);
	dest[written+2]=fmt_tohex(s[i]&15);
      }
      written+=3;
    } else {
      if (dest) dest[written]=s[i];
      ++written;
    }
    /* in case someone gives us malicious input */
    if (written>((size_t)-1)/2) return (size_t)-1;
  }
예제 #7
0
파일: nqueens.c 프로젝트: SandeepKasa/C
int solve(int a[][50], int col)
{
	int row;
	if(col>=8)
		return 1;
	else
	{
		for(row=0;row<8;row++)
			if (issafe(a,row,col))
			{
				a[row][col]=1;
				if(solve(a,col+1))
				{return 1;}
				a[row][col]=0;
			}
	}
	return 0;
}
예제 #8
0
bool queen_util(int sol[N][N],int col)
{
    int i,j;
if(col>=N)
return 1;
for(i=0;i<N;i++)
{
if (issafe(sol,i,col)==1)
{
sol[i][col]=1;
if(queen_util(sol,col+1)==1)
return 1;
sol[i][col]=0;
return 0;
}
}
return 0;
}
예제 #9
0
파일: hamilto.c 프로젝트: sacOO7/sl2
int hamilutil (int graph[][20],int *path,int pos){
	int j;
	if (pos==n){
		if (graph[path[pos-1]][path[0]]){
			return 1;
		}else{
			return 0;
		}
	}
	for (j=0;j<n;j++){

		if (issafe(j,graph,path,pos)){
			path[pos]=j;

			if (hamilutil(graph,path,pos+1)==1){
				return 1;
			}
		}

	}
	return 0;

}
예제 #10
0
bool cycle_util(bool graph[V][V],int pos,int path[])
{
	if(pos==V)
	{
		if(graph[path[pos-1]][path[0]]==1)
		return 1;
		else
            return 0;
	}

	int v;
	for(v=1;v<V;v++)
	{
	if(issafe(graph,path,v,pos)==1)
	{
		path[pos]=v;
		if(cycle_util(graph,pos+1,path)==1)
		return 1;
		path[pos]=-1;
	}

}
	return 0;
}
예제 #11
0
파일: eicmod.c 프로젝트: JackJone/opencv
static void genAffect(type_expr * t, int expand, FILE *fp)
{
 
	fputs("\t", fp);
	switch (EiC_gettype(t)) {
	  case t_char: 
	  case t_short:
	  case t_int:   fputs("v.ival = ", fp); break;
	  case t_uchar:
	  case t_ushort:
	  case t_uint:  fputs("v.uival = ", fp); break;
	  case t_long:  fputs("v.lval = ", fp); break;
	  case t_ulong: fputs("v.ulval = ", fp); break;
	  case t_float: 
	  case t_double:fputs("v.dval = ", fp); break;

	  case t_pointer: 
	    if(isunsafe(t)) 
	      fputs("v.p.ep = (void*)ULONG_MAX;\n"
		    "\tv.p.sp = v.p.p = ",fp);
	    else if(issafe(t)) 
	      fputs("v.p.ep = v.p.sp = v.p.p = ", fp);
	    break;
	  case t_void:  break;
	  case t_hidden: break;
	    
/*	  case t_array:
	    fprintf(fp,"ARY[%d]",(int) EiC_getInf(t));
	    break;
	  case t_union:
	  case t_struct:
	    S = EiC_getInf(t);
	    if(!S) {
		fputs("Incomplete", fp);
		break;
	    }
	    if (EiC_gettype(t) == t_struct)
		fprintf(fp,"struct: size  %u bytes",S->tsize);
	    else
		fprintf(fp,"union: size  %u bytes",S->tsize);
	    if (expand) {
		level++;
		fputc('\n', fp);
		if (level <= 2) {
		    int j;
		    for (i = 0; i < S->n; i++) {
			for (j = 0; j < level; j++)
			    fputc('\t', fp);
			fputs(S->id[i], fp);
			fputs(" -> ", fp);
			EiC_showdectype(S->type[i], expand,fp);
			fputc('\n', fp);
		    }
		}
		level--;
	    }
	    break;
	  case t_ref: fputs("Reference ",fp);break;
	  case ID: fputs("Identifier ", fp); break;
*/
	  default: fputs("Uknown identifier", fp); return;
	}
}