P1007绕钉子的长绳子

来源:互联网 发布:视频采集网站源码 编辑:程序博客网 时间:2024/04/30 21:34

背景

平面上有N个圆柱形的大钉子,半径都为R,所有钉子组成一个凸多边形。

现在你要用一条绳子把这些钉子围起来,绳子直径忽略不计。

描述

求出绳子的长度

格式

输入格式

第1行两个数:整数N(1<=N<=100)和实数R。

接下来N行按逆时针顺序给出N个钉子中心的坐标
坐标的绝对值不超过100。

输出格式

一个数,绳子的长度,精确到小数点后2位。

样例1

样例输入1[复制]

4 10.0 0.02.0 0.02.0 2.00.0 2.0

样例输出1[复制]

14.28
#include<iostream> #include<math.h>#include<stdio.h>using namespace std;int main(){double pi=3.1415 ,r;int n,i,j;float x[110],y[110],sum=0;cin>>n>>r;if(n==1)sum=2*pi*r;else {for(i=1;i<=n;i++){cin>>x[i]>>y[i];if(i>1 && i<=n)sum+=sqrt(  (x[i-1]-x[i]) * (x[i-1]-x[i])  +  (y[i-1]-y[i]) *  (y[i-1]-y[i])  ) ;}sum+=sqrt(  (x[n]-x[1]) * (x[n]-x[1])  +  (y[n]-y[1]) *  (y[n]-y[1])  );sum+=2*pi*r;}printf("%.2f",sum);return 0;}


0 0
原创粉丝点击