Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Matrix paths right-down only, going through XY
Language:
Ada
Assembly
Bash
C#
C++ (gcc)
C++ (clang)
C++ (vc++)
C (gcc)
C (clang)
C (vc)
Client Side
Clojure
Common Lisp
D
Elixir
Erlang
F#
Fortran
Go
Haskell
Java
Javascript
Kotlin
Lua
MySql
Node.js
Ocaml
Octave
Objective-C
Oracle
Pascal
Perl
Php
PostgreSQL
Prolog
Python
Python 3
R
Rust
Ruby
Scala
Scheme
Sql Server
Swift
Tcl
Visual Basic
Layout:
Vertical
Horizontal
#include <iostream> void printAllPathsXY(int *mat, int i, int j, int m, int n, int *path, int pi,bool q,int x, int y) { if (i==x & j==y) { q=true; } if (i == m - 1) { for (int k = j; k < n; k++) { path[pi + k - j] = *(mat + (m-1)*n + k); if (i==x & k==y) { q=true; } } if (q) { for (int l = 0; l < pi + n - j; l++) std::cout << path[l] << " "; std::cout << "\n"; } q=false; return; } if (j == n - 1) { for (int k = i; k < m; k++) { path[pi + k - i] = *(mat + k*n + n-1); if (k==x & j==y) { q=true; } } if(q) { for (int l = 0; l < pi + m - i; l++) std::cout << path[l] << " "; std::cout << "\n"; } q=false; return; } path[pi] = *(mat + i*n + j); printAllPathsXY(mat, i+1, j, m, n, path, pi + 1,q,x,y); printAllPathsXY(mat, i, j+1, m, n, path, pi + 1,q,x,y); } void printA(int *mat, int m, int n, int x, int y) { int *path = new int[m+n]; printAllPathsXY(mat, 0, 0, m, n, path, 0,false,x,y); } int main() { int x=2; int y=2; int mat[3][3] = { {1, 4, 7}, {2, 5, 8},{3, 6, 9} }; printA(*mat, 3, 3,x,y); }
cl.exe
Show compiler warnings
[
+
] Compiler args
[
+
]
Show input
Compilation time: 0.65 sec, absolute running time: 0.06 sec, absolute service time: 0.77 sec
edit mode
|
history
|
discussion
1 2 3 6 9 1 2 5 6 9 1 2 5 8 9 1 4 5 6 9 1 4 5 8 9 1 4 7 8 9