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); } } }
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; }
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); } } }
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. } }
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; }
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; }
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; }
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; }
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; }
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; } }