link: http://codeforces.com/contest/330/problem/C
broute force
but you must be careful about some tricks and think about all the instances
1 /* 2 ID: zypz4571 3 LANG: C++ 4 TASK: 192c.cpp 5 */ 6 7 #include <iostream> 8 #include <cstdio> 9 #include <cstdlib> 10 #include <cstring> 11 #include <cmath> 12 #include <cctype> 13 #include <algorithm> 14 #include <queue> 15 #include <deque> 16 #include <queue> 17 #include <list> 18 #include <map> 19 #include <set> 20 #include <vector> 21 #include <utility> 22 #include <functional> 23 #include <fstream> 24 #include <iomanip> 25 #include <sstream> 26 #include <numeric> 27 #include <cassert> 28 #include <ctime> 29 30 #define INF 0x3f3f3f3f 31 #define REP(i, n) for(int i=0;i<int(n);++i) 32 #define FOR(i, a, b) for(int i=int(a);i<int(b);++i) 33 #define DWN(i, b, a) for(int i=int(b-1);i>=int(a);--i) 34 #define REP_1(i, n) for(int i=1;i<=int(n);++i) 35 #define mid int m=(l+r)/2 36 using namespace std; 37 int a[102][102], rows[102], cols[102]; 38 int main ( int argc, char *argv[] ) 39 { 40 #ifndef ONLINE_JUDGE 41 freopen("in.txt", "r", stdin); 42 #endif 43 int n; cin>>n; 44 char ch; 45 getchar(); 46 REP(i, n) { 47 REP(j, n) { 48 scanf("%c", &ch); 49 if (ch == '.') a[i][j] = 1; 50 else a[i][j] = 0; 51 } 52 getchar(); 53 } 54 bool flaga = true, flagb = true; 55 vector<pair<int, int> > v; 56 // REP(i, n) { /*here is error */ 57 // flag = false; /* can not judge like this */ 58 // REP(j, n) { /* short of some instance */ 59 // if (a[i][j] == 1) { 60 // v.push_back(make_pair(i+1,j+1)); flag = true; 61 // break; 62 // } 63 // } 64 // if (!flag) break; 65 // } 66 REP(i, n) { 67 REP(j, n) { 68 rows[i] += a[i][j]; 69 cols[j] += a[i][j]; 70 } 71 } 72 REP(i, n) { 73 if (!rows[i]) flaga = false; 74 if (!cols[i]) flagb = false; 75 } 76 if (!flaga && !flagb) cout<<"-1"<<endl; 77 else { 78 if (!flagb) 79 REP(i, n) { 80 REP(j, n) { 81 if (a[i][j] == 1) {v.push_back(make_pair(i+1, j+1)); break;} 82 } 83 } 84 else 85 REP(j, n) { 86 REP(i, n) { 87 if (a[i][j] == 1) {v.push_back(make_pair(i+1, j+1)); break;} 88 } 89 } 90 vector<pair<int, int> >::iterator it; 91 for (it = v.begin(); it != v.end(); ++it) { 92 cout << (*it).first<<' '<<(*it).second<<endl; 93 } 94 } 95 return EXIT_SUCCESS; 96 } /* ---------- end of function main ---------- */
I got a WA in the match. sad.....