ACMテーマカエルのデート

4211 ワード


Time Limit:
1000ms
Memory limit:
10000kB
タイトルの説明
2匹のカエルがネットで知り合って、楽しく話していたので、一度会う必要があると思っていました.同じ緯度線に住んでいることを喜んで発見し、会うまで西に踊ることを約束した.しかし、彼らは出発する前に重要なことを忘れて、相手の特徴をはっきり聞いていないし、会う具体的な位置を約束していない.しかし、カエルたちは楽観的で、ずっとある方向に飛び降りれば、いつも相手に会えると思っています.しかし、この2匹のカエルが同じ時間に同じ点にジャンプしない限り、永遠に会うことはできません.この2匹の楽観的なカエルを助けるために、この2匹のカエルが会えるかどうか、いつ会えるかを判断するプログラムを書くように要求されました. 
この2匹のカエルをそれぞれカエルAとカエルBと呼び,緯度線上の東経0度を原点とし,東から西へを正方向とし,単位長さ1メートルで首尾が接する数軸を得た.カエルAの出発点座標をx、カエルBの出発点座標をyとする.カエルAは一度にmメートル、カエルBは一度にnメートル、2匹のカエルが一度にジャンプするのにかかる時間は同じです.緯度線の総長はLメートルである.今、何回も踊ってから会うように頼んでください.
入力
入力には、x≠y<20000000,0しゅつりょく
出会いに必要なジャンプ回数を出力し、永遠に会えない場合は「Impossible」を出力します.
サンプル入力

1 2 3 4 5

サンプル出力

4

私の答え
メモリ:
1840kB
時間:
0ms
言語:
C
   1: #include <stdio.h>

 
   2: void main() {

 
   3:     int x,y,m,n,l;

 
   4:     int num=0,pa,pb;

 
   5:     scanf("%d%d%d%d%d",&x,&y,&m,&n,&l);

 
   6:     pa=x; pb=y;

 
   7:     while(1){

 
   8:         if(pa==pb) break;

 
   9:         if(pa+m>l) pa=pa+m-l; else pa+=m;

 
  10:         if(pb+n>l) pb=pb+n-l; else pb+=n;

 
  11:         ++num;

 
  12:         if(pa==x && pb==y) break;

 
  13:     }

 
  14:     if(pa==pb) 

 
  15:         printf("%d/n",num);

 
  16:     else if(pa==x && pb==y) 

 
  17:         printf("Impossible/n");

 
  18:     

 
  19: }