problem description
給定乙個由整數組成的集合,集合中的整數各不相同,現在要將它分為兩個子集合,使得這兩個子集合的並為原集合、交為空集,同時在兩個子集合的元素個數n1與n2之差的絕對值|n1-n2|盡可能小的前提下,要求它們各自的元素之和s1與s2之差的絕對值|s1-s2|盡可能大。
input
每個輸入檔案中一組資料。
第一行乙個正整數n(1<=n<=10000000),表示集合中的整數個數。第二行是用空格隔開的n個絕對值在6666666以內的整數。
output
用空格隔開的兩個整數,即所求的|n1-n2|與|s1-s2|。
sample input
5 4 2 1 3 5
sample output
1 9author
shoutmon
source
16浙大考研機試模擬賽
方法一:nth_element()
#include
#include
#include
using
namespace
std;
int main()
方法二:partition()
#include
#include
using
namespace
std;
int a[10000000+1],n;
void partition(int a,int l,int r,int k)
int main()
27733 死亡拆分I
給定乙個由整數組成的集合,集合中的整數各不相同,現在要將它分為兩個子集合,使得這兩個子集合的並為原集合 交為空集,同時在兩個子集合的元素個數n1與n2之差的絕對值 n1 n2 盡可能小的前提下,要求它們各自的元素之和s1與s2之差的絕對值 s1 s2 盡可能大。每個輸入檔案中一組資料。第一行乙個正整...
單詞拆分II
已知 給一字串s和單詞的字典dict,在字串中增加空格來構建乙個句子,並且所有單詞都來自字典。返回所有有可能的句子。示例 給一字串lintcode,字典為 de ding co code lint 則結果為 lint code lint co de 思路 用動態規劃的思路,這道題目按照遞迴是很容易解...
單詞拆分 II
單詞拆分 ii 給定乙個非空字串 s 和乙個包含非空單詞列表的字典 worddict,在字串中增加空格來構建乙個句子,使得句子中所有的單詞都在詞典中。返回所有這些可能的句子。說明 分隔時可以重複使用字典中的單詞。你可以假設字典中沒有重複的單詞。示例 1 輸入 s catsanddog worddic...