比赛 |
NOIP2023模拟赛1 |
评测结果 |
AWWWWWWWWW |
题目名称 |
奇怪的监狱 |
最终得分 |
10 |
用户昵称 |
dick |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2023-11-13 09:46:08 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int pn[1005];
int n,m,a;
int fe[105];
int zy(int x)
{
if(x==0) return 99999;
int s=0,p=0,q=0;
for(int i=x+1;i<=n;i++)
{
if(pn[i]==0) s++;
if(pn[i]==1) {q=i;break;}
}
for(int i=x-1;i>=1;i--)
{
if(pn[i]==0) s++;
if(pn[i]==1) {p=i;break;}
}
return abs(x-(p+q)/2);
}
int rr(int x)
{
if(x==0) return 99999;
int s=0;
for(int i=x+1;i<=n;i++)
{
if(pn[i]==0) s++;
if(pn[i]==1) {;break;}
}
for(int i=x-1;i>=1;i--)
{
if(pn[i]==0) s++;
if(pn[i]==1) {break;}
}
return s;
}
int main()
{
freopen("prison.in","r",stdin);
freopen("prison.out","w",stdout);
memset(pn,0,sizeof(pn));
cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>fe[i];
}
int ans=0;
int free=99999;
for(int j=1;j<=m;j++)
{
for(int i=1;i<=m;i++)
{
if(zy(fe[i])<free)
{
free=rr(fe[i]);
a=i;
}
}
pn[fe[a]]=1;
fe[a]=0;
ans+=free;
}
cout<<ans;
}