1671C - Dolce Vita - CodeForces Solution


binary search greedy math

Please click on ads to support us..

Python Code:

from functools import lru_cache
def get_last_term(start,end,d):
	return ((end - start) // d) + 1

for _ in range(int(input())):
	shops, b = map(int,input().split())
	costs = list(map(int,input().split()))
	costs.sort()
	p_sum = []
	s = 0
	for c in costs:
		s += c
		p_sum.append(s)
	ans = 0
	for i in range(len(p_sum)):
		last_term = get_last_term(p_sum[i],b,i+1)
		if last_term >= 0:
			ans += last_term
	print(ans)

C++ Code:

#include<bits/stdc++.h>
#define ll long long
#define yes cout<<"YES\n";
#define no cout<<"NO\n";
#define debug(x) cout << "(" << #x << ": " << x << ")\n";

using namespace std;
int inf=-10000000;


ll n,x;
ll a[200200];
void solve(){
    cin>>n>>x;
    for(int i=0;i<n;i++)
        cin>>a[i];
    sort(a,a+n);
    for(int i=1;i<n;i++)
        a[i]+=a[i-1];
    ll ans = 0;
    for(int i=0;i<n;i++){
        if(x-a[i]>=0){
            ans+= ((x-a[i])/(i+1)) + 1;
        }
    }
    cout<<ans<<'\n';
}

int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    int T;
    cin>>T;
    while(T--)
        solve();
}


Comments

Submit
0 Comments
More Questions

1358D - The Best Vacation
1620B - Triangles on a Rectangle
999C - Alphabetic Removals
1634C - OKEA
1368C - Even Picture
1505F - Math
1473A - Replacing Elements
959A - Mahmoud and Ehab and the even-odd game
78B - Easter Eggs
1455B - Jumps
1225C - p-binary
1525D - Armchairs
1257A - Two Rival Students
1415A - Prison Break
1271A - Suits
259B - Little Elephant and Magic Square
1389A - LCM Problem
778A - String Game
1382A - Common Subsequence
1512D - Corrupted Array
667B - Coat of Anticubism
284B - Cows and Poker Game
1666D - Deletive Editing
1433D - Districts Connection
2B - The least round way
1324A - Yet Another Tetris Problem
246B - Increase and Decrease
22E - Scheme
1566A - Median Maximization
1278A - Shuffle Hashing