草体にぼ日記

だらだらと

12月14日 精進録

12月14日
 まえがき

昨日は虚無!!

  • 解いた問題
  • ARC054 A- 動く歩道
  • ARC051 A- 塗り絵

#### ARC054 A-動く歩道 problem

解法
int main()
{
    cout << setprecision(10);
    int l , x,  y, s ,d; 
    cin >> l  >> x >> y >> s >> d;
    int dist ,rdist;
    if(s < d){
        dist = d- s; 
        rdist = s + l - d;
    }else {
        dist = l -s + d;
        rdist = s -d ;
    }
    double a ,b ;
    a = dist*1. / ( x + y);
    b = rdist*1. / ( y - x );
    double ans = min(a,b);
    if(a < 0) ans = b ;
    if( b < 0 ) ans = a;
    cout << ans <<endl;
}

こんな図を書きました(円じゃなくて線でみた) f:id:niboshi_bisyoujo:20191214145635p:plain

高橋くんが歩く速さは、右向きを正方向として、 x + y か、 y - x ;

時計回りで歩くか、半時計回りで歩くかで距離が変わるので、その距離を求めた。

そうすればあとは、時間 = 距離 / 速さ を用いる。 ただ、y > xのとき、速さが負になって、明らかに時計回りに進んだほうがいいので、(時間も負の値になる) その時は、もう片方をansにする。ってしました。

if ( a < 0 ) ans = b;はなくても通りそう

ARC051 A- 塗り絵

problem

解法

難しくないですか?

2時間ぐらいダラダラと考察してやっと通せました。

とりあえず円の左端、右端とx2,x3に着目して考えました。

が、僕には解法を書くだけの脳がないので頑張って条件分岐して解いたとしかいえません。

f:id:niboshi_bisyoujo:20191214194135j:plain