while循环中的条件不明确

时间:2019-06-20 17:17:40

标签: c++

根据我的说法,以下代码中while循环条件下的j值应为max 101。但是代码为以下测试用例输出104: n = 1,m = 20000000,a [] = {100}

#include<bits/stdc++.h>
using namespace std;
long long cnt[101];
int main()
{
long long n,m;
cin>>n>>m;
long long a[n];
for(long long i=0;i<n;i++){
    cin>>a[i];
    long long j=1,sum=0,ele=0;

    while(sum+j*cnt[j]<m-a[i] && j<101){
            sum+=j*cnt[j];
            ele+=cnt[j];
            j++;
    }
     cout<<j<<endl;
    if(j!=101){
        ele+=((m-a[i]-sum)/j);
        cout<<i-ele<<" ";
    }
    else
        cout<<0<<" ";
    cnt[a[i]]++;
}

return 0;
}

0 个答案:

没有答案