#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int h, w; int cnt = 0; vectors(50); double func(double x, double y) { double num = 0; for (int i = 0; i < h; i++) { for (int j = 0; j < s[i].length(); j++) { if (s[i][j] == '1') { num += sqrt( pow( (x - (j + 1) ),2 ) + pow( ( y - (i + 1)), 2)); } } } return num; } int main() { int i, j, k; cin >> h >> w; for (i = 0; i < h; i++) { cin >> s[i]; } vectordd(1000, -1); for (i = 0; i < h; i++) { dd[cnt] = func(0,i+1); cnt++; //cout << fixed << setprecision(8) << dd[cnt - 1] << endl; } for (i = 0; i < h; i++) { dd[cnt] = func(w + 1, i + 1); cnt++; //cout << fixed << setprecision(8) << dd[cnt - 1] << endl; } for (i = 0; i < w; i++) { dd[cnt] = func( i + 1, 0); cnt++; //cout << fixed << setprecision(8) << dd[cnt - 1] << endl; } for (i = 0; i < w; i++) { dd[cnt] = func(i + 1, h + 1); cnt++; //cout << fixed << setprecision(8) << dd[cnt - 1] << endl; } sort(dd.begin(), dd.begin() + cnt - 1); cout << fixed << setprecision(8) << dd[0] << endl; getchar(); getchar(); return 0; }