题解:P12686 [KOI 2022 Round 1] 面包

· · 题解

还是传送门

P12686 [KOI 2022 Round 1] 面包

很简单,剔除掉所有无法领到面包的店铺,也就是 A_i<B_i 的店铺,然后选择离你的位置最近的店铺。当然,运气不好,买不到面包的时候,请注意输出 -1
放代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
    cin.tie(0)->sync_with_stdio(0);//解绑
    cout.tie(0);
    int n,x,y;
    cin>>n;
    int minn = 2147483647;//为了特判
    for(int i = 1;i<=n;i++){
        cin>>x>>y;
        if(x<=y)minn = min(minn,y);//判断能否买到面包并记录最小值
    }
    if(minn!=2147483647)cout<<minn;//特判
    else cout<<-1;//特判
    return 0;
}

时间复杂度 O(n\log n)