比赛 Mister B的奇妙生活 评测结果 TTTTTATAAT
题目名称 B先生和PR移位 最终得分 30
用户昵称 Aeons 运行时间 7.082 s
代码语言 C++ 内存使用 8.70 MiB
提交时间 2017-09-11 19:49:33
显示代码纯文本
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("MrBB1.in");
ofstream fout("MrBB1.out");
int a[100010];
int f[100010];
int n,i,L=0,R=0,ans=0,k,m;
int main()
{
	fin>>n;
	for(i=1;i<=n;i++)
		fin>>a[i];
	for(i=1;i<=n;i++)
	{
		f[abs(a[i]-i)]++;
		if(a[i]-i>=0)
			L++;
		else
			R++;
	}
	for(i=1;i<=n;i++)
		ans+=abs(a[i]-i);
	for(i=1;i<=n;i++)
	{
		L-=f[i-1]+1;R+=f[i-1]-1;
		m=ans-L+R;
		if(m<ans)
		{
		ans=m;k=i;}
	}
	fout<<ans<<' '<<k<<endl;
	fin.close();
	fout.close();
	return 0;
}