##CSP 201803-2 碰撞的小球(C语言)100分
问题描述
数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处。有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒。
当小球到达线段的端点(左端点或右端点)的时候,会立即向相反的方向移动,速度大小仍然为原来大小。
当两个小球撞到一起的时候,两个小球会分别向与自己原来移动的方向相反的方向,以原来的速度大小继续移动。
现在,告诉你线段的长度L,小球数量n,以及n个小球的初始位置,请你计算t秒之后,各个小球的位置。
提示
因为所有小球的初始位置都为偶数,而且线段的长度为偶数,可以证明,不会有三个小球同时相撞,小球到达线段端点以及小球之间的碰撞时刻均为整数。
同时也可以证明两个小球发生碰撞的位置一定是整数(但不一定是偶数)。
输入格式
输入的第一行包含三个整数n, L, t,用空格分隔,分别表示小球的个数、线段长度和你需要计算t秒之后小球的位置。
第二行包含n个整数a1, a2, …, an,用空格分隔,表示初始时刻n个小球的位置。
输出格式
输出一行包含n个整数,用空格分隔,第i个整数代表初始时刻位于ai的小球,在t秒之后的位置。
样例输入
3 10 5
4 6 8
样例输出
7 9 9
样例说明
样例输入
10 22 30
14 12 16 6 10 2 8 20 18 4
样例输出
6 6 8 2 4 0 4 12 10 2
数据规模和约定
对于所有评测用例,1 ≤ n ≤ 100,1 ≤ t ≤ 100,2 ≤ L ≤ 1000,0 < ai < L。L为偶数。
保证所有小球的初始位置互不相同且均为偶数。
#include<stdio.h>
int main()
{void adjust(int a[], int b[], int n, int length);int n,length,t,i,j,a[100],b[100];scanf("%d%d%d", &n, &length, &t);for (i = 0; i < n; i++){scanf("%d", &a[i]);b[i] = 1;//1代表右移,-1代表左移}for (i = 1; i <= t; i++){for (j = 0; j < n; j++)a[j] = a[j] + b[j];//小球移动adjust(a, b, n, length);}for (i = 0; i < n; i++)printf("%d ", a[i]);return 0;
}
void adjust(int a[],int b[],int n,int length)
{int i,j;for (i = 0; i < n; i++){for (j = i; j < n; j++){if (a[i] == a[j] && i < n - 1)//两小球相遇时各自反向{b[i] = -b[i], b[j] = -b[j];}}if (a[i] == 0)//在最左端b[i] = 1;if (a[i] == length)//在最右端b[i] = -1;}
}
##CSP 201803-2 碰撞的小球(C语言)100分相关推荐
- CCF CSP 2019-9-1 小明种苹果 C语言100分
CCF CSP 2019-9-1 小明种苹果 C语言100分 小明种苹果 完成时间11-18 16:54 代码长度510B C 正确 100分 耗时93ms 空间使用6.167MB 这道题简单,仅附上 ...
- CSP认证201803-2 碰撞的小球[C++题解]:模拟
文章目录 题目解答 题目链接 题目解答 来源:acwing 分析: 题目理解: 给定水平方向的线段和n个小球,给定速度和碰撞后反向运动等条件,模拟小球碰撞过程,求解最后时刻所有小球的位置. 题目解答: ...
- CCF CSP 201609-2 火车购票(C++语言100分)[简单模拟题]
1. 问题链接:CCF 201609-2 火车购票 试题编号: 201609-2 试题名称: 火车购票 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 请实现一个铁路购票系统的 ...
- CCF CSP 201512-2 消除类游戏(C++语言100分)
1. 问题链接:CCF 201512-2 消除类游戏 试题编号: 201512-2 试题名称: 消除类游戏 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 消除类游戏是深受大众 ...
- CCF 201803 跳一跳 碰撞的小球 url映射 棋局评估
试题编号: 201803-1 试题名称: 跳一跳 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 近来,跳一跳这款小游戏风靡全国,受到不少玩家的喜爱. 简化后的跳一跳规则如下: ...
- CCF CSP 碰撞的小球 C++
碰撞的小球 代码比较长是因为看错题意,题目要求最后按序号输出位置,因此既要存序号,也要存位置.先将小球按照初始位置排序,定义另一个数组mov来记录小球移动的距离,每过一个单位时间判断是否发生碰撞,并修 ...
- CCF201803-2 碰撞的小球(100分)【模拟】
试题编号: 201803-2 试题名称: 碰撞的小球 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处.有 ...
- 碰撞的小球 ccf (模拟)
问题描述 试题编号: 201803-2 试题名称: 碰撞的小球 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐 ...
- 【CCF】201803-2 碰撞的小球
试题编号: 201803-2 试题名称: 碰撞的小球 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处.有n个不计体 ...
- CCF201803-2 碰撞的小球
试题编号: 201803-2 试题名称: 碰撞的小球 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处.有n个不计体 ...
最新文章
- windows下 composer常见问题及处理
- html css integrity,integrity 属性
- 最简单EXT调用WCF
- 机器学习笔记:梯度消失
- Android WebView 致安卓应用闪退,mPaaS 助你规避这波 Bug
- mdp文件-Chapter4-MD.mdp
- shell判端mysql数据库是否存在_Shell脚本检测和检查mysql数据库是否存在坏表
- orale如果是整数后面补小数点0_Win10完美整数大小磁盘分区
- 下载sqlserver2012 试用_大肥虫助手下载-大肥虫助手 安卓版v7.0.4
- git clone报错warning:Clone succeeded,but checkout failed
- 第二周工作总结——NWNU李泓毅
- java word 水印_java操作word水印
- 智能制造案例——面向重型机械车间智能制造系统解决方案
- 荣耀手机出售还可以用鸿蒙,华为荣耀整体出售对鸿蒙有何影响
- Python---项目(简易画图软件)
- wordpress 调用指定页面内容详解2 get_children()
- javaSE进阶学习笔记
- C 三个学生四门成绩,求成绩总和与平均值
- android应用案例之Listview
- 电子病历编辑器功能点六级试题库