比赛 |
20120417 |
评测结果 |
WWWWWWWWWW |
题目名称 |
放牧2 |
最终得分 |
0 |
用户昵称 |
Cloud |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2012-04-17 10:54:02 |
显示代码纯文本
#include<fstream>
#include<set>
using namespace std;
int main(void)
{
ifstream fin("graze2.in");
ofstream fout("graze2.out");
int n,m,num=0;
set<int> a;
set<int>::iterator p,q,o;
int i,k,j;
fin>>n>>m;
k=(m-1)/(n-1);
for(i=0;i<n;i++)
{
fin>>j;
a.insert(j);
}
p=a.begin();
for(i=0;i<n-1;i++)
{
q=p;
p++;
if(*p-*q==1)
for(j=1;j<n;j++)
{
o=a.find(*p+j);
if(o==a.end())
{
a.insert(*p+j);
a.erase(p);
num+=j;
break;
}
}
if(*p-*q>k)
{
num++;
a.erase(p);
a.insert(*p-1);
}
}
fout<<num;
fin.close();
fout.close();
return 0;
}