#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
inline int round(int i, int size){
if(i < size){
return i;
}
return i - size;
}
bool canServer(vector<int> const &r, vector<int> const &s){
int n = (int)r.size();
vector<int> newS = s;
size_t size = s.size();
vector<int> a;
vector<int> b;
a.resize(r.size());
b.resize(r.size());
for (int i = 0; i < n; ++i) {
if(r[i] <= newS[i]){
newS[i] -= r[i];
a[i] = r[i];
}else{
a[i] = newS[i];
newS[i] = 0;
int preAdd = r[i] - a[i];
b[i] = preAdd;
int const nextI = round(i + 1,n);
if(preAdd > newS[nextI]){
int const end = i + (int)size;
for(int j = i + 1; j < end; ++j){
int const readJIndex = round(j,n);
if(a[readJIndex] + b[readJIndex] != r[readJIndex]){
if(preAdd > newS[readJIndex]){
return false;
}
newS[readJIndex] -= preAdd;
preAdd = 0;
break;
}else{
if (preAdd <= newS[readJIndex]) {
newS[readJIndex] -= preAdd;
preAdd = 0;
break;
}
preAdd = preAdd - newS[readJIndex];
newS[readJIndex] = 0;
if(a[readJIndex] < preAdd){
return false;
}
a[readJIndex] -= preAdd;
b[readJIndex] += preAdd;
}
}
}else{
newS[nextI] -= preAdd;
preAdd = 0;
}
if(preAdd != 0){
return false;
}
}
}
return true;
}
/*
1
8
5 15 10 25 35 35 35 55
10 15 10 25 30 35 40 45
1
8
5 15 10 25 35 35 35 50
10 15 10 25 30 35 40 45
1
8
5 15 10 25 35 35 36 50
10 15 10 25 30 35 40 45
*/
int main(){
int row;
cin>> row;
for (int i = 0; i < row; ++i) {
int n = 0;
cin>>n;
vector<int> r;
vector<int>s;
r.resize(n);
s.resize(n);
for (int j = 0; j < n; ++j) {
cin>>r[j];
}
for (int j = 0; j < n; ++j) {
cin>>s[j];
}
if (i != 0) {
cout<<"\n";
}
if (canServer(r, s)) {
cout<<"Yes";
}else{
cout<<"No";
}
}
return 0;
}
2022 年 TPC 腾讯程序设计竞赛 赛题题库 1B 负载均衡
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 在腾讯云部署gitlab服务器,前置负载均衡配置https。上传的时候报错 配置腾讯云负载均衡个性化配置如下: 上...
- 准备:linux版本:CentOS7.4 64位以下操作全部在root账号下进行已经在腾讯云上进行备案的域名一枚,...
- 引入 阅读Tilestrata的源码是绕不开Tilestrata-Balancer(以下简称TB)这个默认的负载均...
- 随机负载均衡随机选择状态为UP的server 加权响应时间负载均衡根据响应时间分配一个weight,响应时间越长,...