2020牛客国庆集训派对day3
A Leftbest
#include <bits/stdc++.h>
using namespace std;
#pragma GCC optimize(2)
typedef long long ll;
set<int > a;
void solve() {
ll sum=0;
int n;
cin>>n;
for (int i = 0; i < n; ++i) {
int x;
cin>>x;
a.insert(x);
auto u = a.upper_bound(x);
if (u!=a.end()){
sum+=*u;
}
}
cout<<sum;
}
signed main() {
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int _ = 1;
while (_--) {
solve();
}
return 0;
}
F Points
#include <bits/stdc++.h>
#define int ll
using namespace std;
#pragma GCC optimize(2)
typedef long long ll;
const int maxn=3e5+10;
int a[maxn];
void solve() {
int n;
cin>>n;
for (int i = 1; i < n; ++i) {
int u,v;
cin>>u>>v;
a[u]++,a[v]++;
}
int sum=0;
for (int j = 1; j < n+1; ++j) {
if (a[j]==1) sum++;
}
cout<<sum;
}
signed main() {
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int _ = 1;
while (_--) {
solve();
}
return 0;
}
J Flowers
#include <bits/stdc++.h>
#define int ll
using namespace std;
#pragma GCC optimize(2)
typedef long long ll;
const int maxn=3e5+10;
int a[maxn];
int n,m;
bool check(int mid){
int sum=0;
for (int i = 1; i <=n; ++i) {
sum+=min(a[i],mid);
}
return mid*m<=sum;
}
void solve() {
int sum=0,ans=0;
cin>>n>>m;
for (int i = 1; i <= n; ++i) {
cin>>a[i],sum+=a[i];
}
int l=0,r=sum/m;
while (l<=r){
int mid = (l + r) >> 1;
if (check(mid)) l=mid+1,ans=mid;
else r=mid-1;
}
cout<<ans<<"\n";
}
signed main() {
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int _ = 1;
cin >> _;
while (_--) {
solve();
}
return 0;
}