1. 程式人生 > >Codeforces Round #540 (Div. 3)--1118D1 - Coffee and Coursework (Easy version)

Codeforces Round #540 (Div. 3)--1118D1 - Coffee and Coursework (Easy version)

sort version 最大的 round 容量 rbegin off 咖啡 easy

https://codeforces.com/contest/1118/problem/D1

能做完的天數最大不超過n,因為假如每天一杯咖啡,每杯咖啡容量大於1

首先對容量進行從大到小的排序,

sort(num.rbegin(),num.rend());
sort(num.begin(),num.end(),greater<int>());
都可以

然後遍歷每一天,當第i天的時候,選出i個容量最大的分配到每一天,如果還沒寫完,繼續選擇i個最大的,但是由題意容量需要進行衰減,衰減的量為j/i(也就是把咖啡以i為單位分成了好多組,相當於減去了組號)


#include<bits/stdc++.h>
using
namespace std; int main(){ int n,m; cin>>n>>m; vector<int> num(n); for(int i=0;i<n;i++){ cin>>num[i]; } sort(num.rbegin(),num.rend()); for(int i=1;i<=n;i++){ int sum=0; for(int j=0;j<n;j++){ sum+=max(num[j]-j/i,0
); } if(sum>=m){ cout<<i<<endl; return 0; } } cout<<-1<<endl; return 0; }

Codeforces Round #540 (Div. 3)--1118D1 - Coffee and Coursework (Easy version)