codeforce1133C. Balanced Team (sort+二分)

    xiaoxiao2022-07-07  200

    C. Balanced Team

    题意: 给n个数, 选m个数,这m个数的最大最小差值小于等于5。 输入最大的m值。

    思路: 排序+二分,枚举每个数二分求出最大值

    #include<iostream> typedef long long ll; const int inf=0x3f3f3f3f; const int inn=0x80808080; using namespace std; int main(){ const int maxm=2e5+5; int n; cin>>n; int a[maxm]; for(int i=0;i<n;i++){ cin>>a[i]; } sort(a,a+n); int ans=0; for(int i=0;i<n;i++){ int temp=upper_bound(a,a+n,a[i]+5)-a-1; temp=temp-i+1; if(temp>ans){ ans=temp; } } cout<<ans<<endl; return 0; }
    最新回复(0)