题目链接:http://codeforces.com/contest/796/problem/A
题意:给你n个房子的价格ai,坐标1到n,你目前在m坐标处,还有你现在拥有的钱数k。每个房子与你的距离是下标差乘10,让你求你可以购买的最近的房子。房子价格为0代表不能购买。
分析:直接从m点出发向左向右寻找第一个价格小于等于k且不为0的房子坐标。两个与m的坐标差的最小值即为答案。
AC代码:
1 #include<bits/stdc++.h> 2 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<<ans1*10<<endl; 25 return 0; 26 }