求调
查看原帖
求调
875806
liupan2010楼主2023/6/16 13:03

闲的没事把之前一直没写对的题写一下,现在还是不会写(

代码很有可读性。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll Read(){
    ll get=0,w=1;
    char c;
    while(c=getchar(),c<'0'||c>'9') (c=='-')?w=-1:1;
    while(c=getchar(),c>='0'&&c<='9') get=get*10+c-'0';
    return get*w;
}
void Write(ll a){
    (a<0)?putchar('-'),a=-a:1;
    if(a>=10) Write(a/10);
    putchar(a%10+'0');
}
ll n,Money,FarmerJohn,Bessie;
bool Turn;
vector<ll> Coin;
int main(){
	n=Read();
	while(n--) Money=Read(),Coin.push_back(Money);
	sort(Coin.begin(),Coin.end());
	while(Coin.size()){
		if(!Turn){
			if(FarmerJohn<Coin[0]) FarmerJohn+=Coin[0],Coin.erase(Coin.begin());
			else FarmerJohn+=Coin[upper_bound(Coin.begin(),Coin.end(),FarmerJohn)-Coin.begin()-1],Coin.erase(upper_bound(Coin.begin(),Coin.end(),FarmerJohn)-1);
		}
		else{
			if(Bessie<Coin[0]) Bessie+=Coin[0],Coin.erase(Coin.begin());
			else Bessie+=Coin[upper_bound(Coin.begin(),Coin.end(),Bessie)-Coin.begin()-1],Coin.erase(upper_bound(Coin.begin(),Coin.end(),Bessie)-1);
		}
		Turn=!Turn;
	}
	Write(FarmerJohn),putchar(' '),Write(Bessie);
	return 0;
}
2023/6/16 13:03
加载中...