关于解题思路
查看原帖
关于解题思路
689927
ice_spruce233楼主2022/3/5 11:08

直接找出最长的m-1个没牛的地方 然后直接减,再把头尾一去不就好了 我也不知道为啥WA了2个。。。。

#include <iostream>
#include <algorithm>
using namespace std;
bool cmp(int a,int b){
	return a>b;
} 
int cow[202],ge[202];//cow牛棚编号,ge空的地方 
int main(){
	int m,s,c;
	cin >> m >> s >> c;
	for(int i = 0;i < c;i++){
		cin >> cow[i];
	}
	sort(cow,cow+c); 
	for(int i = 0;i < c - 1;i++){
		ge[i] = cow[i + 1] - cow[i];//计算间隔 
	}
	sort(ge,ge+c,cmp);//排序,找出最大的m-1个间隔 
	int ans = cow[c - 1] - (cow[0] - 1);//掐头去尾 
	for(int i = 0;i < m - 1;i++){
		ans-=ge[i];
		ans++;//加上有牛的那一个 
	}
	cout << ans << endl;
	return 0;
} 
2022/3/5 11:08
加载中...