题解 P1190 【接水问题】

· · 题解

身为编C++的人,则么能不知道STL模板库呢??

将在接水的m同学按需要水的量进行排序,然后再让其他同学替换最早接完水的同学。

我也无聊得不行了,就用了multiset:

#include<bits/stdc++.h>
using namespace std;

int main(){
    int w[10000];
    int n,m;
    int ans[100];
    multiset<int> s;
    multiset<int>::iterator it;
    multiset<int>::reverse_iterator rit;
    //freopen("water.in","r",stdin);
    //freopen("water.out","w",stdout);
    cin>>n>>m;
    int i;
    for ( i=0;i<n;i++ ) {
        cin>>w[i];
    }
    for ( i=0;i<m;i++ ) {
        s.insert(w[i]);
        ans[i]=w[i];
    }
    for ( i=m;i<n;i++ ) {
        int a=*s.begin();
        s.erase( s.begin() );
        s.insert( a+w[i] );
    }
    cout<<*s.rbegin()<<endl;
    //fclose(stdin);
    //fclose(stdout);
    return 0;
}