[uva] 10167 - Birthday Cake
开始和大家一起刷白书的课后题了! 第一道, 枚举题.
1 #include <cstdio> 2 #include <utility> 3 #include <vector> 4 using namespace std; 5 6 bool solve(vector<pair<int, int> > & v, int n, int i, int j) { 7 8 int lnum = 0, unum = 0; 9 for (int k = 0; k < 2 * n; ++k) { 10 int s = i * v[k].first + j * v[k].second; 11 if (s > 0) { 12 lnum += 1; 13 } else if (s < 0) { 14 unum += 1; 15 } else { 16 return false; 17 } 18 } 19 if (lnum == unum && lnum == n) { 20 //printf("%d\n", lnum); 21 printf("%d %d\n", i, j); 22 return true; 23 } 24 return false; 25 } 26 27 int main() 28 { 29 int n = 0; 30 while(true) { 31 scanf("%d", &n); 32 if (n == 0)break; 33 vector<pair<int, int> > v(2 * n); 34 for (int i = 0; i < 2 * n; ++i) { 35 pair<int, int> p; 36 scanf("%d%d", &p.first, &p.second); 37 v[i] = p; 38 //printf("%d, %d\n", v[i].first, v[i].second); 39 } 40 for (int i = -500; i <= 500; ++i) { 41 int flag = 0; 42 for (int j = -500; j <= 500; ++j) { 43 if (solve(v, n, i, j)) { 44 flag = 1; 45 break; 46 } 47 } 48 if (flag) break; 49 } 50 } 51 return 0; 52 }
浙公网安备 33010602011771号