题目链接:
题意:给你n个房子的价格ai,坐标1到n,你目前在m坐标处,还有你现在拥有的钱数k。每个房子与你的距离是下标差乘10,让你求你可以购买的最近的房子。房子价格为0代表不能购买。
分析:直接从m点出发向左向右寻找第一个价格小于等于k且不为0的房子坐标。两个与m的坐标差的最小值即为答案。
AC代码:
1 #include2 using namespace std; 3 int a[105]; 4 int main() { 5 int n,m,k; 6 cin>>n>>m>>k; 7 for(int i=1;i<=n;i++){ 8 cin>>a[i]; 9 }10 int ans1=1e5,ans2=1e5;11 for(int i=m-1;i>=1;i--){12 if(a[i]<=k&&a[i]!=0){13 ans1=m-i;14 break;15 }16 }17 for(int i=m+1;i<=n;i++){18 if(a[i]<=k&&a[i]!=0){19 ans2=i-m;20 break;21 }22 }23 ans1=min(ans1,ans2);24 cout< <