太酷啦
2024-01-07 20:35:31
发布于:广东
5阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
vector < int > p(n), t(n), d(n);
for(int i = 0; i < n; i++){
cin >> p[i];
}
for(int i = 0; i < n; i++){
cin >> t[i];
}
for(int i = 0; i < n; i++){
d[i] = p[i] - t[i];
}
int first_nonzero = 0, ans = 0;
while(true){
while(first_nonzero < n && d[first_nonzero] == 0){
first_nonzero++;
}
if(first_nonzero == n){
break;
}
int r = first_nonzero;
auto sgn = [&](int x){
if(x < 0){
return -1;
}
if(x > 0){
return 1;
}
return 0;
};
while(r + 1 < n && sgn(d[r + 1]) == sgn(d[first_nonzero])){
r++;
}
for(int i = first_nonzero; i <= r; i++){
if(d[i] < 0){
d[i]++;
}else{
d[i]--;
}
}
ans++;
}
cout << ans << endl;
return 0;
}
这里空空如也
有帮助,赞一个