螺旋折线

题目描述

如图p1.pgn所示的螺旋折线经过平面上所有整点恰好一次。

对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度。

例如dis(0, 1)=3, dis(-2, -1)=9

给出整点坐标(X, Y),你能计算出dis(X, Y)吗?

【输入格式】

X和Y

对于40%的数据,-1000 <= X, Y <= 1000

对于70%的数据,-100000 <= X, Y <= 100000

对于100%的数据, -1000000000 <= X, Y <= 1000000000

【输出格式】

输出dis(X, Y)

【输入样例】

0 1

【输出样例】

3

资源约定:

峰值内存消耗(含虚拟机) < 256M

CPU消耗 < 1000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

不要使用package语句。不要使用jdk1.7及以上版本的特性。

主类的名字必须是:Main,否则按无效代码处理。

import java.util.Scanner;

public class Main {
static int x, y;
static int df = 0;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
x = in.nextInt();
y = in.nextInt(); if (x > 0 && y >= 0) {
int dx = Math.max(x, y);
int dy = dx;
df = (dx + dy) * (dx + dy);
if (x < dx) {
df -= (dx - x);
}
if (y < dy) {
df += (dy - y);
}
} else if (x >= 0 && y < 0) {
int dx = Math.max(Math.abs(x), Math.abs(y));
int dy = -dx;
df = (dx + Math.abs(dy)) * (dx + Math.abs(dy) + 1);
if (x < dx) {
df += (dx - x);
}
if (y > dy) {
df -= (y - dy);
}
} else if (x < 0 && y <= 0) {
int dx = -Math.max(Math.abs(x), Math.abs(y));
int dy = dx + 1;
df = (Math.abs(dx) + Math.abs(dy)) * (Math.abs(dx) + Math.abs(dy));
if (x > dx) {
df -= (x - dx);
}
if (y > dy) {
df += (y - dy);
}
} else if (x <= 0 && y > 0) {
int dx = -Math.max(Math.abs(x), Math.abs(y));
int dy = -dx;
df = (Math.abs(dx) + Math.abs(dy)) * (Math.abs(dx) + Math.abs(dy) - 1);
if (x > dx) {
df += (x - dx);
}
if (y < dy) {
df -= (y - dy);
}
}
System.out.println(df);
}
}

最新文章

  1. 五种常见的 PHP 设计模式
  2. CentOS7 bonding配置
  3. 启动Eclipse后卡在 android sdk content loader 的解决办法
  4. 前台js分页,自己手写逻辑2
  5. shell的内建命令和外部命令
  6. 修改mysql数据存储的地址
  7. SingleNumber python实现
  8. JPEG概述和头分析(C源码)
  9. 七 APPIUM Android 定位方式
  10. MyBatis sqlsession 简化 使用工具类创建
  11. vue-cli sass安装
  12. go web framework gin 启动流程分析
  13. Mysql被攻击
  14. [蓝桥杯]ALGO-87.算法训练_字串统计
  15. selector 选择器
  16. android Activity中设置setResult 没有触发onActivityResult
  17. React Native中的约束规范
  18. SVD分解及线性最小二乘问题
  19. opengl导入obj模型
  20. hdu 1788 最小公倍数(这题面。。。)

热门文章

  1. 基于Nettty打造自己的MVC服务器
  2. Codeforces 949C(Data Center Maintenance,Tarjan缩点)
  3. 如何将你的node服务放到线上服务器
  4. mysql小白系列_11 MHA
  5. 用STM32的UART实现DMX512
  6. ftp服务器搭建(一)
  7. C# 使用RestClient 调用接口
  8. Android数据传递
  9. Less定义变量
  10. 赛艇表演 51nod提高组模拟试题