题解 | #快来帮芙芙吧* II#
快来帮芙芙吧* II
https://ac.nowcoder.com/acm/contest/99072/C
跟第一题差不多,思路差不多一样我把代码贴这
代码实现
#include<bits/stdc++.h>
using namespace std;
int mid,x,y;
int sum1,sum;
void calculate1(int n, int l) {
if(n%2==0){
mid=n/2;
if(l%2==0){
x=mid-(l/2);
y=mid+l/2;
}
else{
x=mid-(l/2);
y=mid+l/2+1;
}
}
else{
mid=n/2+1;
if(l%2==0){
x=mid-(l/2);
y=mid+l/2;
}
else{
x=mid-(l/2);
y=mid+l/2+1;
}
}
sum1=0;
for (int i=1;i<=n;i++) {
sum1+=min(abs(i-x),abs(i-y));
}
}
void calculate(int n, int l) {
if(n%2==0){
mid=n/2;
if(l%2==0){
x=mid;
y=mid+l;
}
else{
x=mid;
y=mid+l;
}
}
else{
mid=n/2+1;
if(l%2==0){
x=mid;
y=mid+l;
}
else{
x=mid;
y=mid+l;
}
}
sum=0;
for (int i=1;i<=n;i++) {
sum+=min(abs(i-x),abs(i-y));
}
}
int main() {
int T;
cin >> T;
while (T--) {
int n,l;
cin>>n>>l;
calculate(n,l);
calculate1(n,l);
if(sum>sum1) cout<<sum1<<endl;
else cout<<sum<<endl;
}
return 0;
}

美团成长空间 2640人发布