关于A题
  • 板块学术版
  • 楼主SJZ2010
  • 当前回复14
  • 已保存回复14
  • 发布时间2023/8/11 18:11
  • 上次更新2023/11/3 04:25:53
查看原帖
关于A题
809729
SJZ2010楼主2023/8/11 18:11

爆0了为什么……

贪心为什么不对

#include <cstdio>
#include <algorithm>

typedef long long ll;

ll x, a;
ll AC[1000005];

inline ll read(){
	ll n=0;
	int f=1;
	char c=getchar();
	while(c<'0' || c>'9'){
		if(c=='-') f=-1;
		c=getchar();
	}
	while(c>='0' && c<='9'){
		n=(n<<3)+(n<<1)+(c^48);
		c=getchar();
	}
	return n*f;
}
inline void write(ll x){
	if(x<0){
		putchar('-');
		x=-x;
	}
	if(x>9) write(x/10);
	putchar(x%10^48);
	return;
}

ll n, t, f;

int main(){
	n = read(), t = read(), f = read();
	for(int i(1);i<=n;i++){
		x = read(), a = read();
		if(x >= a)
			AC[i] = 0;
		else
			AC[i] = a + (a-x)%2 - x;
	}
	std::sort(AC+1, AC+n+1);
	ll pointer = 1;
	ll waste = t-f;
	ll cnt(0);
	//for(int i(1);i<=n;i++)
	//	printf("%d ", AC[i].mintime);
	//putchar('\n');
	while(waste >= 0 && pointer <= n){
		if(waste < AC[pointer])
			break;
		waste -= AC[pointer],
		cnt++;
		pointer++;
	}
	printf("%lld\n", cnt);
	return 0;
}
2023/8/11 18:11
加载中...