<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=Pairsumonious_Numbers%2F%EA%B6%8C%EC%98%81%EA%B8%B0</id>
	<title>Pairsumonious Numbers/권영기 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=Pairsumonious_Numbers%2F%EA%B6%8C%EC%98%81%EA%B8%B0"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=Pairsumonious_Numbers/%EA%B6%8C%EC%98%81%EA%B8%B0&amp;action=history"/>
	<updated>2026-05-14T22:11:10Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=Pairsumonious_Numbers/%EA%B6%8C%EC%98%81%EA%B8%B0&amp;diff=37454&amp;oldid=prev</id>
		<title>imported&gt;trailblaze at 07:09, 31 August 2012</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=Pairsumonious_Numbers/%EA%B6%8C%EC%98%81%EA%B8%B0&amp;diff=37454&amp;oldid=prev"/>
		<updated>2012-08-31T07:09:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt; &lt;br /&gt;
 #include&amp;amp;lt;stdio.h&amp;amp;gt;&lt;br /&gt;
 #include&amp;amp;lt;memory.h&amp;amp;gt;&lt;br /&gt;
 #include&amp;amp;lt;algorithm&amp;amp;gt;&lt;br /&gt;
 #include&amp;amp;lt;list&amp;amp;gt;&lt;br /&gt;
 #define M 100&lt;br /&gt;
 #define N 12&lt;br /&gt;
 using namespace std;&lt;br /&gt;
 list &amp;amp;lt;int&amp;amp;gt; sum;&lt;br /&gt;
 int ans[N], n, flag = 0, checkans[M], temp[M], cnt = 0;&lt;br /&gt;
 int checker(){&lt;br /&gt;
 	memset(checkans, 0, sizeof(int) * M);&lt;br /&gt;
 	cnt = 0;&lt;br /&gt;
 	for(int i = 1; i&amp;amp;lt;=n; i++){&lt;br /&gt;
 		for(int j = i+1; j&amp;amp;lt;=n; j++){&lt;br /&gt;
 			checkans[cnt++] = ans[i] + ans[j];&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	sort(checkans, checkans+cnt);&lt;br /&gt;
 	for(int i = 0; i&amp;amp;lt;cnt; i++){&lt;br /&gt;
 		if(checkans[i] != temp[i])return 0;&lt;br /&gt;
 	}&lt;br /&gt;
 	return 1;&lt;br /&gt;
 }&lt;br /&gt;
 void back(int s, list &amp;amp;lt;int&amp;amp;gt;::iterator iter){&lt;br /&gt;
 	list &amp;amp;lt;int&amp;amp;gt;::iterator it1, it2, temp, tempit;&lt;br /&gt;
 	int tempsum;&lt;br /&gt;
 	if(s == n+1 &amp;amp;amp;&amp;amp;amp; checker()){&lt;br /&gt;
 		flag = 1;&lt;br /&gt;
 		return;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	for(it1 = iter; it1 != sum.end() &amp;amp;amp;&amp;amp;amp; !flag; it1++){&lt;br /&gt;
 		temp = it1;&lt;br /&gt;
 		temp++;&lt;br /&gt;
 		for(it2 = temp; it2 != sum.end()  &amp;amp;amp;&amp;amp;amp; !flag; it2++){&lt;br /&gt;
 			tempsum = (ans[s-1] + ans[s-2] + *it1 + *it2)/2;&lt;br /&gt;
 			ans[s] = tempsum - ans[s-1] - ans[s-2];&lt;br /&gt;
 			if(ans[s-2] &amp;amp;lt;= ans[s-1] &amp;amp;amp;&amp;amp;amp; ans[s-1] &amp;amp;lt;= ans[s]){&lt;br /&gt;
 				tempit = find(it2, sum.end(), ans[s-1] + ans[s]);&lt;br /&gt;
 				//back(s+1, find(it2, sum.end(), ans[s-1] + ans[s]));&lt;br /&gt;
 				back(s+1, tempit);&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 int main(void)&lt;br /&gt;
 {&lt;br /&gt;
 &lt;br /&gt;
 	int m, i, tempsum, start = 1;&lt;br /&gt;
 	while(scanf(&amp;quot;%d&amp;quot;, &amp;amp;amp;n) == 1){&lt;br /&gt;
 		if(start == 1){&lt;br /&gt;
 			start = 0;&lt;br /&gt;
 		}&lt;br /&gt;
 		else if(start == 0){&lt;br /&gt;
 			printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
 		}&lt;br /&gt;
 		flag = 0;&lt;br /&gt;
 		memset(temp, 0, sizeof(int) * M);&lt;br /&gt;
 		memset(ans, 0, sizeof(int) * N);&lt;br /&gt;
 		while(!sum.empty())sum.pop_back();&lt;br /&gt;
 		for(i = 0; i&amp;amp;lt;n*(n-1)/2; i++){&lt;br /&gt;
 			scanf(&amp;quot;%d&amp;quot;, &amp;amp;amp;temp[i]);&lt;br /&gt;
 		}&lt;br /&gt;
 		m = i;&lt;br /&gt;
 		sort(temp, temp + m);&lt;br /&gt;
 		for(i = 2; i&amp;amp;lt;m; i++){&lt;br /&gt;
 			sum.push_back(temp[i]);&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		list&amp;amp;lt;int&amp;amp;gt;::iterator iter, tempit;&lt;br /&gt;
 		for(iter = sum.begin(); iter!=sum.end(); iter++){&lt;br /&gt;
 			tempsum = (temp[0] + temp[1] + *iter)/2;&lt;br /&gt;
 			ans[1] = tempsum - *iter;&lt;br /&gt;
 			ans[2] = tempsum - temp[1]; &lt;br /&gt;
 			ans[3] = tempsum - temp[0];&lt;br /&gt;
 			if(ans[1] &amp;amp;lt;= ans[2] &amp;amp;amp;&amp;amp;amp; ans[2] &amp;amp;lt;= ans[3]){&lt;br /&gt;
 				tempit = find(sum.begin(), sum.end(), ans[2]+ans[3]);&lt;br /&gt;
 				//back(4, find(sum.begin(), sum.end(), ans[2] + ans[3]));&lt;br /&gt;
 				back(4, tempit);&lt;br /&gt;
 				if(flag)break;&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 		if(!flag)printf(&amp;quot;Impossible&amp;quot;);&lt;br /&gt;
 		else{&lt;br /&gt;
 			for(i = 1; i&amp;amp;lt;=n; i++){&lt;br /&gt;
 				printf(&amp;quot;%d&amp;quot;, ans[i]);&lt;br /&gt;
 				if(i != n)printf(&amp;quot; &amp;quot;);&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
10546028	10202	Pairsumonious Numbers	Accepted	C++	0.008	2012-08-31 07:07:56&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;trailblaze</name></author>
	</entry>
</feed>