腾讯课堂的物理实验

来源:互联网 发布:如何查看淘宝店铺排名 编辑:程序博客网 时间:2024/06/10 19:38

在腾讯课堂的物理课上,进行了一个有趣的物理实验。

在一个长度为 LLL 米的光滑轨道上,小车 A 在 000 时刻以 1m/s1\mathrm{m/s}1m/s 的速度从左端出发向右运动,小车 B 在 ttt 时刻以 1m/s1\mathrm{m/s}1m/s 的速度从右端出发向左运动,两个小车的质量相等。假设所有碰撞都是弹性碰撞,也就是当两个小车相向碰撞时,他们各自会以原来的速度向相反的方向运动;小车和轨道两端发生碰撞时,小车会以原速度向反方向运动。

试求出 TTT 时刻的时候,两个小车相距多远。

输入格式

输入三个整数 L(1≤L≤1000),L(1 \le L \le 1000),L(1L1000),t(0≤t≤1000),t(0 \le t \le 1000),t(0t1000),T(t≤T≤1000)T(t \le T \le 1000)T(tT1000)

输出格式

输出 TTT 时刻两车之间的距离。

样例输入1

10 4 7

样例输出1

0

样例输入2

8 3 9

样例输出2

5

直接计算第一个车行驶T秒时的位置和第二个车行驶T-t秒时的位置。然后相减就行

#include<cstdio>#include<iostream>using namespace std;#define LL long longint abs(int a){    if(a<0)        return -a;    else        return a;}int main(){    int a,b,c;    while(cin>>a>>b>>c)    {        int l;        if(c<=a)        {            l=c;        }        else        {            int s=c/a;            int haha=c%a;            if(s%2==0)            {                l=haha;            }            else                l=a-haha;        }        int l1=c-b;        if(l1==0)        {            printf("%d\n",a-l);        }        else        {            int ha;            if(l1<=a)            {                ha=a-l1;            }            else            {                if(l1%a==0)                {                    int k=l1/a;                    if(k%2==0)                    {                        ha=a;                    }                    else                    {                        ha=0;                    }                }                else                {                    ha=l1%a;                }            }            printf("%d\n",abs(l-ha));        }    }}