总时间限制: 1000ms 内存限制: 65536kB

描述

一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物

输入

第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,每行一个正整数a (a < 32768)

输出

输出包含n行,每行对应一个输入,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用一个空格分开
如果没有满足要求的答案,则输出两个0。

样例输入

  1. 2
  2. 3
  3. 20

样例输出

  1. 0 0
  2. 5 10

思路

设脚的个数为 X.

  • 如果 X 是奇数,则无解,输出 0 0.
  • 如果 X 是偶数,且能被4整除,则最少有 X/4 只兔子,最多有X/2只鸡.
  • 如果 X 是偶数,但不能被4整除,则最少有 X/4只兔子外加1只鸡,最多有 X/2只鸡.

代码

  1. #include<iostream>
  2. using namespace std;
  3. int main() {
  4. int number, feet = 0;
  5. cin >> number;
  6. for(int i = 0; i < number; i++) {
  7. cin >> feet;
  8. if(feet % 2 != 0) { // If feet is an odd number
  9. printf("0 0\n");
  10. continue;
  11. }
  12. // If feet is an even number
  13. if(feet % 4 == 0) {
  14. printf("%d %d\n", feet / 4, feet / 2);
  15. }else {
  16. printf("%d %d\n", feet/4 + 1, feet / 2);
  17. }
  18. }
  19. return 0;
  20. }