P10189 [USACO24FEB] Maximizing Productivity B 题解
_Jocularly_
·
·
题解
题目分析
## 注意
sort 函数实现的是数组从小到大排序,如果想要从大到小有两种实现方法,第一种是自己编写一个 cmp 函数;第二种方法,也是本篇用到的方法,利用 reverse 函数反转已经排完序,从小到大的数组,就可以实现从大到小,reverse 函数的使用方法和 sort 函数相同,具体请看代码。
## 代码
```cpp
#include<bits/stdc++.h>
using namespace std;
int n,q;
int c[200005],t[200005];
int late[200005];
int main(){
cin >> n >> q;
for(int i=1;i<=n;i++){
cin >> c[i];//关闭时间
}
for(int i=1;i<=n;i++){
cin >> t[i];//初始访问时间
}
for(int i=1;i<=n;i++){
late[i] = c[i] - t[i];//最晚到达时间
}
sort(late+1,late+1+n);//排序
reverse(late+1,late+1+n);
for(int i=1;i<=q;i++){
int v,s;
cin >> v >> s;
if(s < late[v]) cout << "YES";//表示能够到达
else cout << "NO";
cout << endl;
}
return 0;
}
```