首页 > 代码库 > 腾讯课堂的物理实验(2017计蒜客初赛第三场)
腾讯课堂的物理实验(2017计蒜客初赛第三场)
A题
在腾讯课堂的物理课上,进行了一个有趣的物理实验。
在一个长度为 LL 米的光滑轨道上,小车 A 在 00 时刻以 1\mathrm{m/s}1m/s 的速度从左端出发向右运动,小车 B 在 tt 时刻以 1\mathrm{m/s}1m/s 的速度从右端出发向左运动,两个小车的质量相等。假设所有碰撞都是弹性碰撞,也就是当两个小车相向碰撞时,他们各自会以原来的速度向相反的方向运动;小车和轨道两端发生碰撞时,小车会以原速度向反方向运动。
试求出 TT 时刻的时候,两个小车相距多远。
输入格式
输入三个整数 L(1 \le L \le 1000),L(1≤L≤1000), t(0 \le t \le 1000),t(0≤t≤1000), T(t \le T \le 1000)T(t≤T≤1000)。
输出格式
输出 TT 时刻两车之间的距离。
样例输入1
10 4 7
样例输出1
0
样例输入2
8 3 9
样例输出2
5
这个题贼坑。。。刚开始竟然没看出来两小车相撞相当于互换,即互不影响,可以单独计算。。。
#include <iostream> #include <cstdio> #include <cmath> using namespace std; int main() { int L,t,T; while(~scanf("%d %d %d",&L,&t,&T)){ int n=T%(2*L); int l; if(n>=L){ l=L-(n-L); }else{ l=n; } int r; int n2=(T-t)%(2*L); if(n2>=L){ r=L-(n2-L); }else{ r=n2; } r=L-r; int ans=r-l; if(ans>=0){ printf("%d\n",ans); }else{ printf("%d\n",-1*ans); } } return 0; }
腾讯课堂的物理实验(2017计蒜客初赛第三场)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。