JDOJ-1194: VIJOS-P1009 清帝之惑之康熙
Posted oi-forever
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDOJ-1194: VIJOS-P1009 清帝之惑之康熙相关的知识,希望对你有一定的参考价值。
1194: VIJOS-P1009 清帝之惑之康熙
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 376 Solved: 122
[Submit][Status][Web Board]
Description
话说西汉时期,汉武帝刘彻派遣张骞出使西域,欲同月氏国结交而共驱匈奴。同时,月氏国也欲同大汉结交,也派出使者康破伦出使大汉,可是因为月氏国对于大汉的认知甚少,康破伦同样向西出使大汉。一开始,张骞从大汉出发,康破伦从月氏国出发,两人都在同一纬度线上,张骞所处的经度为x,康破伦所处的经度为y;接下来,两人同时向西走,而且只能向西走,张骞每天走m公里,康破伦每天走n公里,且每天走路的速度不变,也不停下来休息;这样两人就在这一条长为L的纬度线上一直向西走。问:过了多少天之后张骞和康破伦会碰面,并磋商两国结交之事(所谓碰面,是指两人处在同一经度上)。
这下,康熙犯难了,他还是个不大的青年,怎么可能做得出这么难的题目;但是,他又是统领全国的帝皇,怎么能在老师面前丢这么大一个面子。康熙想:不行!一定得把这个题做出来!(然后就有了下面这段记录)
第一天,……
第二天,…………
第三天,………………
第四天,……………………
第五天,…………………………
第六天,………………………………
第七天,……………………………………!!!!!!!
啊!第七天,康熙终于打了7个感叹号,得出了一个重要的结论!!!!!那就是——做不出来。(汗),没办法,他只有请教你,他的挚友,帮他解决这一难题。康熙答应你,如果你把这一题做出来了,你将得到御赐赏银一万万两!
Input
输入只包括一行5个整数x,y,m,n,L 其中0< x≠y < =2000000000,0 < m、n < =2000000000,0 < L < =2100000000。
Output
输出碰面所需要的天数,如果永远不可能碰面则输出一行" Impossible" 。
Sample Input
Sample Output
#include<cstdio> #include<cstdlib> #include<iostream> #include<cmath> #include<cstring> #include<algorithm> using namespace std; #define ll long long ll A, B, m, n, l, x, y; ll exgcd(ll a, ll b, ll&x, ll&y) { if(b == 0) { x = 1; y = 0; return a; } ll d = exgcd(b, a % b, y, x); y -= (a / b) * x; return d; } int main() { scanf("%lld%lld%lld%lld%lld", &A, &B, &m, &n, &l); ll tm1 = B - A, tm2 = m - n, d; if(tm1 < 0) { tm1 = -tm1; tm2 = - tm2; } if(tm2 < 0) { d = exgcd(-tm2, l, x, y); x = -x; } else d = exgcd(tm2, l, x, y); if(tm1 % d) printf("Impossible\n"); else { ll r = l / d; x = ((x * (tm1 / d)) % r + r) %r; printf("%lld\n", x); } return 0; }
以上是关于JDOJ-1194: VIJOS-P1009 清帝之惑之康熙的主要内容,如果未能解决你的问题,请参考以下文章