码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-04-17 17:48:02      阅读:150      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!