Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Solution by Zhusupov Nurlan
- #include <iostream>
- #include <cassert>
- #include <cstdio>
- #include <cstdlib>
- #include <cstring>
- #include <cctype>
- #include <cmath>
- #include <algorithm>
- #include <set>
- #include <vector>
- #include <map>
- #include <string>
- #include <stack>
- #include <queue>
- #include <ctime>
- using namespace std;
- typedef long long LL;
- typedef map<string , int> MSI;
- typedef vector<int> VI;
- #define pb(x) push_back(x)
- #define sqr(x) ((x)*(x))
- #define F first
- #define S second
- #define SZ(t) ((int)t.size())
- #define len(t) ((int)t.length())
- #define base 10
- #define fname "coins."
- #define sz 1000*1000
- #define EPS (1e-8)
- #define INF ((int)1e9 + 9)
- #define write(xx) printf("%d" , xx);
- #define readln(xx) getline(cin , xx)
- #define read(xx) scanf("%d" , &xx)
- #define for(xx1 , yy1 , zz1) for(int zz1 = xx1 ; zz1 <= yy1 ; zz1++)
- const double PI = acos(-1.0);
- int s, t, k, n, m, ans;
- char a[100][100];
- int main(){
- freopen(fname"in", "r", stdin);
- freopen(fname"out", "w", stdout);
- cin >> n >> m >> k;
- for (1 , n , i)
- for (1 , m , j)
- {
- cin >> a[i][j];
- s += (a[i][j] == 'o');
- }
- ans = INF;
- for (1 , n , i1)
- for (i1 , n , i2)
- for (1 , m , j1)
- for (j1 , m , j2)
- {
- t = 0;
- for (i1 , i2 , i)
- for (j1 , j2 , j)
- t += (a[i][j] == 'o');
- if (t == k)
- {
- ans = min(ans, (i1 + j1 - 2) * 2 + n - i2 + m - j2);
- ans = min(ans, (n - i2 + m - j2) * 2 + i1 + j1 - 2);
- ans = min(ans, (j1 - 1 + n - i2) * 2 + i1 - 1 + m - j2);
- ans = min(ans, (i1 - 1 + m - j2) * 2 + j1 - 1 + n - i2);
- }
- }
- if (ans == INF)
- cout << -1;
- else
- cout << ans;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement