Buying A House

题目链接:https://vjudge.net/contest/162220#problem/C

题解:

1.利用数组标记是否有人入住

2.以二丫为中心,分两次线性扫描得出前后两个最短距离

3.两个比较得出min

AC code:

#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
 int n,m,k;
 int a[110];
 int sta[110];
 scanf("%d%d%d",&n,&m,&k);
  memset(sta,0,sizeof(sta));
  for(int i=1;i<=n;i++)
  {
   scanf("%d",&a[i]);
   if(a[i]==0)
   {
    sta[i]=1;
   }
  }
  int mark,mark1;
  for(int i=m;i>=1;i--)
  {
   if(sta[i]==0 && a[i]<=k)
   {
    mark=i;
    break;
   }
  }
  mark=abs(mark-m)*10;
  for(int i=m;i<=n;i++)
  {
   if(sta[i]==0 && a[i]<=k)
   {
    mark1=i;
    break;
   }
  }
  mark1=abs(mark1-m)*10;
  if(mark1<=mark)
  {
   printf("%d\n",mark1);
  }
  else
  {
   printf("%d\n",mark);
  }
 
 return 0;
}

posted @ 2017-05-06 22:04  Demon2017  阅读(213)  评论(0编辑  收藏  举报