USACO1.3.2 Barn Repair (barn1)

来源:互联网 发布:手机淘宝 找不到摇一摇 编辑:程序博客网 时间:2024/05/18 03:19
总长度最小即总间隙最大。

选取最大的m-1段间隙,其余部分用木板盖住。


/*ID:shijiey1PROG:barn1LANG:C++*/#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int m, s, c;int arr[210];int spacing[210];bool cmp(int a, int b) {return a > b;}int main() {freopen("barn1.in", "r", stdin);freopen("barn1.out", "w", stdout);scanf("%d %d %d", &m, &s, &c);for (int i = 0; i < c; i++) {scanf("%d", &arr[i]);}sort(arr, arr + c);for (int i = 1; i < c; i++) {spacing[i - 1] = arr[i] - arr[i - 1];}int len = arr[c - 1] - arr[0] + 1;sort(spacing, spacing + c - 1, cmp);int blank = 0;for (int i = 0; i < m - 1; i++) {blank += spacing[i];}blank -= m - 1;if (c <= m) {printf("%d\n", c);} else printf("%d\n", len - blank);return 0;}


0 0
原创粉丝点击