这个思路可以发个题解吗
查看原帖
这个思路可以发个题解吗
1089735
MenDaRun楼主2024/10/23 21:48

专栏链接

个人感觉思路比较简单,码量比较小

#include<iostream>
#include<algorithm>
using namespace std;
int n;
const int maxn = 2e5+10;
int k[maxn], s=1999999999;
long long ans;
long long mod = 1e9+7;
int main()
{
	cin >> n;
	for(int i = 1; i <= n; i++) cin >> k[i];
	for(int i = 1; i <= n; i++) {
		int t;
		cin >> t;
		s = min(s, max(t-1, k[i]-t));
		k[i] = min(t-1, k[i]-t);
	}
	sort(k+1, k+n+1);
	for(int i = 1; i <= n; i++) {
		if(k[i] >= s) k[i] = s;
		ans = ((((k[i]-k[i-1]) + ans)%mod)*2)%mod;
	}
	ans += (s-k[n])%mod;
	ans = (ans+1) % mod;
	cout << ans << endl;
	return 0;
}
2024/10/23 21:48
加载中...