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

  • 时间: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×(ab)=n2×bc=n2c(ab)=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. }


来自为知笔记(Wiz)


posted on 2016-04-17 17:02  红洋  阅读(345)  评论(0)    收藏  举报

导航