题目链接:http://poj.org/problem?id=2977

Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 2229   Accepted: 598

Description

You are given a three-dimensional box of integral dimensions lx × ly × lz The edges of the box are axis-aligned, and one corner of the box is located at position (0, 0, 0). Given the coordinates (xyz) of some arbitrary position on the surface of the box, your goal is to return the square of the length of the shortest path along the box’s surface from (0, 0, 0) to (xyz).

If lx = 1, ly = 2, and lz = 1, then the shortest path from (0, 0, 0) to (1, 2, 1) is found by walking from (0, 0, 0) to (1, 1, 0), followed by walking from (1, 1, 0) to (1, 2, 1). The total path length is √8.

Input

The input test file will contain multiple test cases, each of which consists of six integers lxlylzxyz where 1 ≤ lxlylz ≤ 1000. Note that the box may have zero volume, but the point (xyz) is always guaranteed to be on one of the six sides of the box. The end-of-file is marked by a test case with lx = ly = lz = x = y = z = 0 and should not be processed.

Output

For each test case, write a single line with a positive integer indicating the square of the shortest path length. (Note: The square of the path length is always an integer; thus, your answer is exact, not approximate.)

Sample Input

1 1 2 1 1 2
1 1 1 1 1 1
0 0 0 0 0 0

Sample Output

8
5 如果你觉得这是一道很简单的题然后你WA的话
可以看下面我画的这张图

唉我画图真的画的太好了哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈(无限得意中
下面放代码
 #include<stdio.h>
#include<iostream>
#include<math.h>
#include<algorithm>
#include<string.h>
#include<limits.h>
using namespace std;
int a(int x)
{
return x*x;
}
int main()
{
int lx,ly,lz,x,y,z;
int res;
while(cin>>lx>>ly>>lz>>x>>y>>z)
{
if(lx==&&ly==&&lz==&&x==&&y==&&z==)
break;
res=INT_MAX;
if(x==||y==||z==)//相邻面上
res=x*x+y*y+z*z;
else if(z==lz)//上面
{
res=min(min(a(x)+a(lz+y),a(y)+a(lz+x)),res);
res=min(res,min(a(y+lx)+a(lx+lz-x),a(x+ly)+a(ly+lz-y)));
}
else if(y==ly)//后面
{
res=min(min(a(x)+a(z+ly),a(z)+a(ly+x)),res);
res=min(res,min(a(x+lz)+a(ly+lz-z),a(z+lx)+a(ly+lx-x)));
}
else if(x==lx)//右面
{
res=min(min(a(z)+a(lx+y),a(y)+a(z+lx)),res);
res=min(res,min(a(lz+y)+a(lx+lz-z),a(z+ly)+a(ly+lx-y)));
}
cout<<res<<endl;
}
return ;
}

POJ 2977 Box walking的更多相关文章

  1. POJ 2977 Box walking 长方体表面两点距离

    POJ2977 小学生的考试题,暴力得出O(1)的解法 #include<iostream> #include<cstdio> #include<cstdlib> ...

  2. 【POJ 3162】 Walking Race (树形DP-求树上最长路径问题,+单调队列)

    Walking Race   Description flymouse's sister wc is very capable at sports and her favorite event is ...

  3. POJ 1477:Box of Bricks

    Box of Bricks Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 19949   Accepted: 8029 De ...

  4. POJ 2110 Mountain Walking 二分+bfs

    传送门 昨天看到这个题还以为是个脑残的dp, 然而脑残的是我. 题目意思就是从左上角走到右下角, 设x为路径上的最大值-最小值, 求x的最小值. 二分x, 对于每一个x, 枚举下界lower, low ...

  5. HOJ题目分类

    各种杂题,水题,模拟,包括简单数论. 1001 A+B 1002 A+B+C 1009 Fat Cat 1010 The Angle 1011 Unix ls 1012 Decoding Task 1 ...

  6. Poj 1006 / OpenJudge 2977 1006 Biorhythms/生理周期

    1.链接地址: http://poj.org/problem?id=1006 http://bailian.openjudge.cn/practice/2977 2.题目: Biorhythms Ti ...

  7. POJ 2152 fire / SCU 2977 fire(树型动态规划)

    POJ 2152 fire / SCU 2977 fire(树型动态规划) Description Country Z has N cities, which are numbered from 1 ...

  8. POJ 3162.Walking Race 树形dp 树的直径

    Walking Race Time Limit: 10000MS   Memory Limit: 131072K Total Submissions: 4123   Accepted: 1029 Ca ...

  9. POJ 1442 Black Box treap求区间第k大

    题目来源:POJ 1442 Black Box 题意:输入xi 输出前xi个数的第i大的数 思路:试了下自己的treap模版 #include <cstdio> #include < ...

随机推荐

  1. WPF 后台绑定样式

    private ContentControl cc = null; private void muiscPlay(object sender, RoutedEventArgs e) { string ...

  2. C++ unordered_map 在key为string类型和char*类型时测试时间性能差异

    测试系统liunx centos6.5 代码如下 #include <string.h> #include <sstream> #include <list> #i ...

  3. centos 安装apache activemq

    安装说明 安装环境:CentOS-6.3 安装方式:源码安装  软件:apache-tomcat-7.0.29.tar.gz下载地址http://activemq.apache.org/downloa ...

  4. php学习笔记——日期和时间

    一.time() 来取得服务器当前时间的时间戳 UNIX 时间戳(timestamp)是 PHP 中关于时间日期一个很重要的概念,它表示从 1970年1月1日 00:00:00 到当前时间的秒数之和. ...

  5. 四位len灯流水

    #include <msp430x14x.h> //#include<intrins.h> #define uint unsigned int void delay(long ...

  6. 详解 UIView 的 Tint Color 属性

    在iOS 7后,UIView新增加了一个tintColor属性,这个属性定义了一个非默认的着色颜色值,其值的设置会影响到以视图为根视图的整个视图层次结构.它主要是应用到诸如app图标.导航栏.按钮等一 ...

  7. Symfony官方视频教程

    视频获取方式,添加Symfony学习群,在群文件中获取,QQ群182983780

  8. 当页面加载完成时,JQ触发添加页面的元素的事件触发不了。。

    有下代码可知: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default. ...

  9. 面试题-Java基础-垃圾回收

    1.Java中垃圾回收有什么目的?什么时候进行垃圾回收? 垃圾回收的目的是识别并且丢弃应用不再使用的对象来释放和重用资源. 2.System.gc()和Runtime.gc()会做什么事情? 这两个方 ...

  10. emguCv3.x 实现字符分割,轮廓检测

    /// <summary> /// 获取区域 /// </summary> /// <param name="bitmap"></para ...