PAT1030

来源:互联网 发布:mariaarredondo 知乎 编辑:程序博客网 时间:2024/06/05 05:30
#include<iostream>#include<vector>#include<algorithm>using namespace std;int main() {        int n;    long long p;    cin >> n >> p;    vector<int> vec(n);    for (int i = 0;i < n;++i)        cin >> vec[i];    if (n == 1) {        cout << 1 << endl;        return 0;    }    sort(vec.begin(), vec.end());    int j;    int count = 0;    for (int i = 0;i < n;++i) {        long long max = vec[i] * p;        for (j = i + count;j < n;++j) {            if (vec[j] > max) break;            ++count;        }        if (j == n) break;    }    cout << count;    return 0;}
  1. 已经遍历到最后说明已经出现最大值
  2. 起始位置向后移动1位,从上次中断的地方继续遍历
  3. 距离不要重新计数
  4. 只有1个的特殊情况
原创粉丝点击