题解 | #快来帮芙芙吧* 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;
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务