PTA 乙級 1060 愛丁頓數 (25分) C++
阿新 • • 發佈:2020-08-28
思路:先降序排序,下標代表達標天數,當元素值小於下標時,意味著愛定頓數出現了.
為了節省程式碼量,我直接利用升序排序,大同小異
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 }