UVA1587 BOX盒子
2015-04-22 22:02
127 查看
给定矩形的长和宽,判断它们能否构成长方体的六个面
#include<iostream> #include<string> using namespace std; int t; void change(int a[7][3]) //输入两个数字,按顺序:小,大;排列。 { for (int k = 1; k <= 6; k++) if (a[k][1] > a[k][2]) { t = a[k][1]; a[k][1] = a[k][2]; a[k][2] = t; } } int main() { int a[7][3]; for (int i = 1; i <= 6; i++) for (int ii = 1; ii <= 2; ii++) cin >> a[i][ii]; change(a); int coincide[7] = { 0 }; int square = 0; int side[7][3] = { 0 }; for (int k = 1; k <= 6; k++) { for (int kk = 1; kk <= 6; kk++) { if (a[k][1] == a[kk][1] && a[k][2] == a[kk][2] && k != kk) //两面完全相等 coincide[k]++; for (int j = 1; j <= 2; j++) { if (a[k][1] == a[kk][j] && k != kk) side[k][1]++; if (a[k][2] == a[kk][j] && k != kk) side[k][2]++; } } if (a[k][1] == a[k][2]) square++; } int judge = 1; // if (square == 0 && coincide[0] == 5) //// judge = 0; if (square > 2 && side[0][0] != 10) //square大于2即为正方形。出去自身所在边,side应为10 judge = 0; for (int h = 1; h <= 6; h++) { if (coincide[h] == 0) //没有面面相同 { judge = 0; break; } for (int j = 1; j <= 2; j++) if (side[h][j] < 3) //自己算一条,总共四条,应该为3。 { judge = 0; break; } } if (judge == 0) cout << "sorry!wrong!"; else cout << "possible"; system("pause"); return 0; }
相关文章推荐
- UVa1587--Box--盒子(代码超简洁)
- uva-1587
- UVA - 1587 Box 麻烦
- UVA 1587 Box 【ACM/ICPC NEERC 2004】
- UVA - 1587 Box :锻炼了我的模拟能力
- UVa 1587 Box (判断长方体)
- UVa-1587 - Box
- UVa 1587 Box
- UVA 1587-Box
- uva 1587 盒子
- UVA-3.10-盒子-1587
- UVa 1587 Box(暴力)
- uva-1587
- Box, ACM/ICPC NEERC 2004, UVa1587
- UVA - 1587 Box
- UVa-1587 - Box
- UVA-1587 Box
- UVA——1587
- uva 1587 题解
- uva-1587