1. 程式人生 > >排隊打水

排隊打水

namespace spa eat can cout color string cst prior

給 N個人,M個水管,問第N+1個人等多久才能打水。

思路:

  我偷懶用了單調隊列。 用的不太熟,稍微調了一會。

#include<iostream>
#include<cstdio>
#include<queue>
#include<vector>
#include<algorithm>
#include<cstring>
using namespace std;
int n,m;
int a[100009];
priority_queue<long long >q;
long long x;
int main()
{
    freopen(
"death.in","r",stdin); freopen("death.out","w",stdout); scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i<=m;i++) q.push(-a[i]); for(int i=m+1;i<=n;i++) { x=q.top();q.pop(); x-=1LL*a[i]; q.push(x); } cout
<<-q.top(); return 0; }

排隊打水