首页 > 其他 > 详细

[2016-04-17][Gym][100947][D][The Three Kings of Asgard]

时间:2016-04-17 17:45:48      阅读:178      评论:0      收藏:0      [点我收藏+]
  • 时间:2016-04-17 16:45:30 星期日

  • 题目编号:[2016-04-17][Gym][100947][D][The Three Kings of Asgard]

  • 题目大意:A给B和当前一样多的金币,B给C,然后C又给A,结束之后,A,B,C三人的金币刚好一样多,问原来A,B,C各有多少个金币,不可能就输出 Impossible

  • 分析:

    • 直接解方程组

    {2×(a?b)=n2×b?c=n2c?(a?b)=n

    • 得到

    {a=11n8b=7n8c=3n4

  • 遇到的问题:当不能整除4和8的时候,不可能

  1. #include<cstdio>
  2. using namespace std;
  3. int main(){
  4. int t;
  5. scanf("%d",&t);
  6. while(t--){
  7. long long n;
  8. scanf("%I64d",&n);
  9. if(n % 8 || n % 4){
  10. puts("Impossible");
  11. }else {
  12. long long a = 11*n/8,b = 7 * n / 8,c = 3 * n / 4;
  13. printf("%I64d %I64d %I64d\n",a,b,c);
  14. }
  15. }
  16. }




[2016-04-17][Gym][100947][D][The Three Kings of Asgard]

原文:http://www.cnblogs.com/qhy285571052/p/daf3a5d3bc42c8458bc29dc990082761.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!