Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
#include
#include
#include
using namespace std; bool vis[16][16][15][(1<<10)]; class ChessMaze { public: int traverseMaze(vector
mat) { memset(vis,0,sizeof vis); int n,m; n = mat.size(); m = mat[0].size(); int si,sj,ei,ej; int b=0; for(int i=0;i
Q; Q.push(si); Q.push(sj); Q.push(0);///K Q.push(0);///kojK Q.push(0);///kolku vis[si][sj][0][0]=true; int di[4]={1,-1,0,0}; int dj[4]={0,0,-1,1}; int dik[8]={-1,-1,1,1,2,2,-2,-2}; int djk[8]={-2,2,-2,2,-1,1,-1,1}; while(!Q.empty()) { int ci=Q.front(); Q.pop(); int cj=Q.front(); Q.pop(); int k=Q.front(); Q.pop(); int kojk=Q.front(); Q.pop(); int kolku=Q.front(); Q.pop(); if(ci==ei && cj==ej) { return kolku; } ///obicno pesacenje for(int i=0;i<4;i++) { int ti=di[i]+ci; int tj=dj[i]+cj; if(ti>=0&&ti
=0&&tj
=n||ti<0||tj>=m||tj<0||mat[ti][tj]=='*') { continue; } if(mat[ti][tj] == 'E') { return kolku + 1; } if(mat[ti][tj]=='.') { if(!vis[ti][tj][k-1][kojk]) { Q.push(ti); Q.push(tj); Q.push(k-1); Q.push(kojk); Q.push(kolku+1); vis[ti][tj][k-1][kojk]=true; } } if(isdigit(mat[ti][tj])) { bool ok=kojk&(1<<(mat[ti][tj]-'0')); if(!ok) { int nkojk=kojk|(1<<(mat[ti][tj]-'0')); if(!vis[ti][tj][k][nkojk]) { Q.push(ti); Q.push(tj); Q.push(k); Q.push(nkojk); Q.push(kolku+1); vis[ti][tj][k][nkojk]=true; } } else if(ok) { if(!vis[ti][tj][k-1][kojk]) { Q.push(ti); Q.push(tj); Q.push(k-1); Q.push(kojk); Q.push(kolku+1); vis[ti][tj][k-1][kojk]=true; } } } } } return -1; } }; /* 4 5 ...*. ..*** ...K* S*E** **/
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)