/*
	© MATTO MATTI 2017
	http://mattomatti.com/pl/a0043
	napisane przy użyciu Visual Studio Community 2015
	2017-07-24 v 1.0
*/

#include <iostream>
#include <vector>

using namespace std;

bool dodaj(vector<int> &el, int x) {
	if (find(el.begin(), el.end(), x) == el.end()) {
		el.push_back(x);
		return true;
	}
	return false;
}

int main() {
	int a;
	cout << "Podaj bok trojkata\na =";
	cin >> a;
	vector<int> v;
	int t;
	cout << "Podaj trojkat:\n";
	for (int i = 0; i < 3 * (a - 1); i++) {
		cin >> t;
		dodaj(v, t);
	}
	if (v.size() != 3 * (a - 1)) {
		cout << "Nie jest to trojkat magiczny. Wartosc " << t;
		cout << " wystepuje wiecej niz raz" << endl;
	} else {
		int suma1 = v[0], suma2 = v[0], suma3 = 0;
		for (int i = 1; i < 2*a - 3; i += 2) {
			suma1 += v[i];
			suma2 += v[i + 1];
		}
		suma1 += v[v.size() - a];
		suma2 += v[v.size() - 1];
		if (suma1 == suma2) {
			for (int i = 2 * a - 3; i < v.size(); i++)
				suma3 += v[i];
			if (suma1 == suma3) {
				cout << "Trojkat magiczny o sumie n = " << suma1 << endl;
			} else {
				cout << "Krawedzie nie maja rownej wartosci" << endl;
			}
		} else {
			cout << "Krawedzie nie maja rownej wartosci" << endl;
		}
	}
	system("pause");
	return 0;
}