现在的位置: 首页 > 综合 > 正文

URAL 1020 Rope

2013年03月19日 ⁄ 综合 ⁄ 共 483字 ⁄ 字号 评论关闭

URAL_1020

    实际上圆弧部分能够组成一个圆,而直线部分则分别等于各相邻两点间距离。

#include<stdio.h>
#include<string.h>
#include<math.h>
#define MAXD 110
int N;
double R;
const double pi = acos(-1.0);
struct Point
{
    double x, y;
}p[MAXD];
void init()
{
    int i;
    for(i = 0; i < N; i ++)
        scanf("%lf%lf", &p[i].x, &p[i].y);
    p[i] = p[0];
}
double sqr(double x)
{
    return x * x;
}
void solve()
{
    int i;
    double ans = 0;
    for(i = 0; i < N; i ++)
        ans += sqrt(sqr(p[i].x - p[i + 1].x) + sqr(p[i].y - p[i + 1].y));
    ans += 2 * pi * R;
    printf("%.2f\n", ans);
}
int main()
{
    while(scanf("%d%lf", &N, &R) == 2)
    {
        init();
        solve();
    }
    return 0;
}

抱歉!评论已关闭.