PTA 乙级 1060 爱丁顿数 (25分) C++

 

 

思路:先降序排序,下标代表达标天数,当元素值小于下标时,意味着爱定顿数出现了.

为了节省代码量,我直接利用升序排序,大同小异

 

 

 1 #include<iostream>
 2 #include<vector>
 3 #include<algorithm>
 4 
 5 using namespace std;
 6 
 7 int main() {
 8     int n = 0;
 9     cin >> n;
10     vector<int> amile(n);
11     for (int i = 0; i < n; ++i) cin >> amile[i];
12     sort(amile.begin(), amile.end());                //升序排序
13     if (amile[0] > n) cout << n;                    //如果最小的英里数比n都大,必然有n天大于n英里
14     else {
15         for (int i = n - 1; i >= 0; --i) {
16             if (amile[i] <= n - i) {                //n-i表示天数
17                 cout << n - i - 1;                    //如果第n-i天不满足车距>天数,那么输出上一个满足的数
18                 break;
19             }
20         }
21     }
22     return 0;
23 }

 

posted @ 2020-08-28 20:24  上帝的绵羊  阅读(170)  评论(0编辑  收藏  举报