pascal(33)

来源:百度知道 编辑:UC知道 时间:2024/06/22 20:33:01
题目:登山机器人问题

问题编号:33 [提交该题] [讨论该问题] [Who AC?] [有关讨论]

本题我的状态:Unlogon

题目类型 尚未设置
描述 登山机器人是一个极富挑战性的高技术密集型科学研究项目。它涉及小车机械、飞行器控制、机器人学、机电一体化、单片机、数据融合、精密仪器、实时数字信号处理、图像处理与图像识别、知识工程与专家系统、决策、轨迹规划、自组织与自学习理论、多智能体协调、以及无线通讯等多项理论和技术,是一个典型的智能机器人系统。登山机器人为研究发展多智能体系统和多机器人之间的合作与对抗提供了生动的研究模型。
登山机器人可以携带有限的能量。在登山过程中,登山机器人需要消耗一定能量,并且可以在机器人之间通过接触传递能量。用多个登山机器人接力登山可以极大地提高登山机器人的攀登高度。
给定n个登山机器人(1<n<100)。第i个登山机器人最多可以携带Xi单位的能量,每攀高1米需要消耗能量Yi单位。开始登山时n个登山机器人均处于同一水平高度0,并且每个登山机器人初始时都携带了最多的能量。计算用这n个登山机器人进行不返回的接力登山可攀登的最高的高度。
输入格式 输入文件第1行中的整数为登山机器人个数n;接下来的n行中每行一个整数,依次为X1,X2,X3,……,Xn;最后的n行中每行一个整数,依次为Y1,Y2,Y3,……,Yn。
输出格式 输出文件只有一个数,为这n个登山机器人可攀登的最高的高度,精确到小数点后2位。
输入文件 直接输入即可
输出文件 直接输出即可 注意,不要在最后输出空行或空格!
样例输入
2
50
50
0.01
0.01
样例输出
7500

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;

int n,k,m,ans,top;
int sta[1000000];

int main()
{
scanf("%d%d%d",&n,&k,&m);

for (int i=1; i<=n; i++)
{
int a,b;
scanf("%d",&a);
ans+=a;
for (int j=1; j<k; j++)
{
scanf("%d",&b);
sta[top++]=b-a;
a=b;
}
}

sort(sta,sta+top);
for (int i=0; i<m-n; i++)
ans+=sta[i];

printf("%d\n",ans);
return 0;
}

这什么??