1. 程式人生 > >騰訊課堂的物理實驗(2017計蒜客初賽第三場)

騰訊課堂的物理實驗(2017計蒜客初賽第三場)

text ram amp tex 方向 top names rip des

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(1L1000), t(0 \le t \le 1000),t(0t1000), T(t \le T \le 1000)T(tT1000)。

輸出格式

輸出 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計蒜客初賽第三場)