Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
115395 | 梁乃元 | 最后一块石头的重量 | C++ | 通过 | 100 | 0 MS | 248 KB | 628 | 2023-12-11 12:56:52 |
# include <bits/stdc++.h> using namespace std ; int a [114] , dp[114]; int sum ; int main ( ) { int n ; cin >> n ; for( int i = 1 ; i <= n ; i ++ ) { cin >> a[i] ; sum += a[i] ; } int sum1 = sum / 2 ; for( int i = a[0] ; i <= sum1 ; i ++ ) { dp [i] = a [0] ; } sort ( a + 1 , a + n + 1 ) ; for ( int i = 2 ; i <= n ; i ++ ) { for ( int j = sum1 ; j >= a [i] ; j -- ) { if ( j - a [i] >= 0 ) { dp [j] = max ( dp [j] , dp [j - a [i]] + a [i] ) ; } } } cout << sum - 2 * dp [sum1] ; return 0 ; }