Valera takes part in the Berland Marathon. The marathon race starts at the stadium that can be represented on the plane as a square whose lower left corner is located at point with coordinates (0, 0) and the length of the side equals a meters. The sides of the square are parallel to coordinate axes.
As the length of the marathon race is very long, Valera needs to have extra drink during the race. The coach gives Valera a bottle of drink each d meters of the path. We know that Valera starts at the point with coordinates (0, 0) and runs counter-clockwise. That is, when Valera covers a meters, he reaches the point with coordinates (a, 0). We also know that the length of the marathon race equalsnd + 0.5 meters.
Help Valera's coach determine where he should be located to help Valera. Specifically, determine the coordinates of Valera's positions when he covers d, 2·d, ..., n·d meters.
The first line contains two space-separated real numbers a and d (1 ≤ a, d ≤ 105), given with precision till 4 decimal digits after the decimal point. Number a denotes the length of the square's side that describes the stadium. Number d shows that after each d meters Valera gets an extra drink.
The second line contains integer n (1 ≤ n ≤ 105) showing that Valera needs an extra drink n times.
Print n lines, each line should contain two real numbers xi and yi, separated by a space. Numbers xi and yi in the i-th line mean that Valera is at point with coordinates (xi, yi) after he covers i·d meters. Your solution will be considered correct if the absolute or relative error doesn't exceed 10 - 4.
Note, that this problem have huge amount of output data. Please, do not use cout stream for output in this problem.
2 5 2
1.0000000000 2.0000000000 2.0000000000 0.0000000000
4.147 2.8819 6
2.8819000000 0.0000000000 4.1470000000 1.6168000000 3.7953000000 4.1470000000 0.9134000000 4.1470000000 0.0000000000 2.1785000000 0.7034000000 0.0000000000
题意:
给出 a(1 ~ 105) ,d(1 ~ 105)代表一个边长为a,停水处是每 d 距离就有一处。后给出 n(1 ~ 105),要求输出 n 次 x 和 y 的坐标,代表这 n 次停下来的位置是什么,以逆时针绕行。
思路:
精度 + 分析。总距离 % (4 * a ),但是模运算只对整型,故对一个不是整型的数要 k - floor(k / (4 * a)) * (4 * a)这样子求得余数。求得余数后,再分析它在哪一段上面,分析每段坐标输出结果就行。除此之外比较大小的时候也要考虑到精度问题,因为题目要求后四位小数相同才算相等。还有对于浮点型的数运算,有乘法的话若直接随循环累加会导致精度损失,根据累加运算次数增加,误差也就增大了,那么最好还是直接用乘法。
AC:
#include <stdio.h> #include <math.h> #define eps 1e-6 int main() { double a,d; int n; scanf("%lf%lf",&a,&d); scanf("%d",&n); for(int i = 1;i <= n;++i) { double ans; ans = (i * d) - floor((i * d) / (4 * a)) * (4 * a); if (ans - a <= eps) printf("%f %f\n",ans,0.0); else if (ans - 2 * a <= eps) printf("%f %f\n",a,ans - a); else if (ans - 3 * a <= eps) printf("%f %f\n",3 * a - ans,a); else printf("%f %f\n",0.0,4 * a - ans); } return 0; }
相关推荐
Marathon+Mesos+Zookeeper+Docker实战,强烈推荐下载学习
Marathon User Guide 使用marathon测试Java swing 界面,达到自动化测试目的。
2.mater会和已注册、受信任的Framework进行交互,定期将最新的资源情况发送给Framework,当Framework前端有工作需求时,将选择接收资源
部署文档(mesos+zk+marathon).docx
Vagrantfile 和一些用于创建 Mesos + Marathon + Chronos + Docker 集群的 shell 脚本 如果只是尝试 Mesos 集群,那会很痛苦。 这组文件可以让你轻松生成 Mesos 的集群环境。 如果你愿意,你可以参考。 入门 1. ...
中单 在单个容器中运行 Mesos + Marathon + Deimos + Zookeper 的容器
本篇文章详细记录了Mesos+Zookeeper+Marathon的Docker管理平台部署过程,可作为线上实操手册,文档可用性已经过验证!有需要的朋友,请拿走。
学习 marathon的入门书籍。mesos+marathon是很流行的docker编排工具,此文档对于学习marathon有很大帮助
Marathon2
Marathon
dc/os marathon offline install rpm resource;yum install --downloadonly --downloaddir=/tmp/marathon marathon
Octa Marathon Dump C++ Certified Professional Programmer 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
marathon-consul, 桥马拉松信息到 Consul 马拉松领事 马拉松到领事桥的元数据发现。marathon-consul 获取由马拉松事件总线提供的信息并将它的转发到 consul tree 。 启动时,它还将所有来自马拉松的信息同步到 ...
基于Docker快速搭建单节点Mesos/Marathon集群,增加支持marathon管理运行docker功能 GitHub地址: ##一. 简介 是集群资源管理系统,是运行在Mesos之上的集群计算架构。将Mesos和Marathon打包到镜像中,开发者便可以在...
资源分类:Python库 所属语言:Python 资源全名:marathon-0.7.7.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
Marathon让你能够轻松编写、运行和管理你的Swift脚本
Marathonctl作为将应用程序部署到marathon的简单命令行工具已实现,您可以在找到二进制文件。 请使用最新的v0.0.x 软件包管理器更改将在v0.1.x系列中进行,因为我们正在进行一些非向后兼容的更改。 用法 您可以从...
marathon-0.8.2.tgz
marathon