hiho week 136 register

Ended

Participants:181

Verdict:Accepted
Score:100 / 100
Submitted:2017-02-05 22:46:41

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include<cstdio>
#include<iostream>
#include<queue>
#include<cstring>
using namespace std;
priority_queue<int>Q;
int n;
long long q;
int k=-1;
int tip[100003];
bool check(int m){
    long long sum=0;
    for(int i=1;i<=m;i++){
        Q.push(tip[i]);
    }
    for(int i=1;i<=n;i++){
        sum+=Q.top()*i;
        Q.pop();
        if(i+m>n)continue;
        else Q.push(tip[i+m]);
    }
    /*for(int i=n-m+1;i<=n;i++){
        sum+=Q.top()*i;
        Q.pop();
    }*/
    if(sum<=q){
        if(k==-1)k=m;
        else{
        k=min(k,m);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX