题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2058
一直是时间超限!!郁闷!!!原来是数学公式的运用!!!
#include<stdio.h>
#include<math.h>
int main()
{
__int64 n,m,i,j,k;
while(scanf("%I64d%I64d",&n,&m)&&(n||m))
{
for(j=sqrt(2*m);j>=1;j--)
{
i=(2*m-j*(j-1))/(2*j);
k=i+j-1;
if((i+k)*j/2==m)
printf("[%I64d,%I64d]\n",i,k);
}
printf("\n");
}
return 0;
}