SRM476 Div2 Easy(300) MatrixShiftings
#include <string> #include <vector> using namespace std; class MatrixShiftings { public: int minimumShifts( vector <string> matrix, int value ); }; int MatrixShiftings::minimumShifts( vector <string> matrix, int value ) { int N = (int)matrix.size(); int M = (int)matrix[0].size(); int ans = N*M; for ( int y=0; y<N; y++ ) for ( int x=0; x<M; x++ ) if ( matrix[y][x]-'0' == value ) ans = min( ans, min(y,N-y)+min(x,M-x) ); return ans < N*M ? ans : -1; }