| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
改了两个小时也没有改出来!!ft~~~~~~~~~ 过了的给点数据吧!#include "stdio.h"
int a[11];
int m,n,k;
int step(int m1,int n1,int k1)
{
int flag1,flag2,i,j,temp;
if(n1==0) return 0;
temp=m1-n1+1;
j=n1;
flag1=0;
for(i=temp;i>=1;i--)
{
if(i*(1+i)/2<k1)
{
flag1++;
k1=k1-i*(1+i)/2;
}
else
break;
}
flag2=0;
for(i=temp-flag1;i>=1;i--)
{
if(k1>i)
{
k1-=i;
flag2++;
}
else
break;
}
a[j]=i-k1+1;
if(flag1>0)
step(m1-a[j],j-1,(temp-a[j]+1 + temp-a[j]+1-flag1+1)/2+flag2+1);
else
step(m1-a[j],j-1,flag2+1);
}
int main()
{
int i,j,temp,time;
scanf("%d",&time);
while(time-->0)
{
scanf("%d%d%d",&m,&n,&k);
step(m,n,k);
for(i=1;i<=n;i++)
{
printf("%d\n",a[i]);
}
}
return 1;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator