codeforces 796A Buying A House

题目链接: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 }
View Code
原文地址:https://www.cnblogs.com/ls961006/p/6926141.html