您的位置:首页 > 其它

pat Data Stucture 海盗分赃

2014-05-07 17:01 148 查看
#include<iostream>
#include<algorithm>

using namespace std;
int Median(int a[],int start,int end)
{
sort(a+start,a+end);
return a[(end-start-1)/2+start];
}
int main()
{
int d,p;
cin>>d>>p;
int a[p],b[p];
a[p-2]=0;
a[p-1]=d;
for(int i=0;i<p-2;++i)
{
for(int j=p-2-i;j<p;++j)
{
b[j]=a[j];
}
int mid=Median(b,p-2-i,p);
int count=0;
for(int j=p-2-i;j<p;++j)
{
if(a[j]<=mid) {a[j]+=1;++count;}
else a[j]=0;
}
int j=p-1;
while(count>(i+3)/2)
{
if(a[j]-1==mid)
{
a[j]=0;
--j;
--count;
}
else --j;
}
int sum=0;
for(int j=p-2-i;j<p;++j)
{
sum+=a[j];
}
a[p-3-i]=d-sum;
}
cout<<a[0];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  pat data_stucture