1001
This problem gives you a flavor the concept of specialjudge. That means the judge is smart enough to verify your code even though itmay print different results. In this problem you are asked to find the oppositetask of the previous problem.
To be specific, I have two computers where I stored myproblems. Now I know the total number of problems isn. And there are noduplicate problems and there can be at most 10 problems in each computer.You have to find the number of problems in each of the computers.
Since there can be multiple solutions. Any valid solutionwill do.
Input
Input starts with an integer T (≤ 25),denoting the number of test cases.
Each case starts with a line containing an integer n (0≤ n ≤ 20) denoting the total number of problems.
Output
For each case, print the number of problems stored in eachcomputer in a single line. A single space should separate the non-negative integers.
这道题目好多的误解啊,这样就难做了,问同济的同学算是解了出来。。。。
#include<stdio.h>
int main()
{
int n[50],m[50],i,num,k;
scanf("%d",&num);
for(i=0;i<num;i++)
{ scanf("%d",&n[i]);
if(n[i]>20) return 0;
m[i]=0;
while(n[i]-m[i]>10)
{m[i]++;
}
for(k=i-1;k>=0;k--)
{ if(n[i]==n[k]){m[i]=m[k]+1;break;}
}
if(m[i]>10) return 0;
printf("%d %d\n",m[i],n[i]-m[i]);
}
return 0;
}
不想没这么复杂。。。。
修改:
#include<stdio.h>
int main()
{
int n[50],m[50],i,num;
scanf("%d",&num);
for(i=0;i<num;i++)
{ scanf("%d",&n[i]);
if(n[i]>20) return 0;
m[i]=0;
while(n[i]-m[i]>10)
{m[i]++;
}
if(m[i]>10) return 0;
printf("%d %d\n",m[i],n[i]-m[i]);
}
return 0;
}
AC了