// pair
#include <vector>
#include <iostream>
using namespace std;

int main() {
	/* Pair гэж юу вэ? Энэ нь шууд утгаараа буюу 2 зүйлийг нийлүүлж хос
	   болгодог гэсэн үг. Өөрөөр хэлбэл int a; гэсэн тохиолдолд зөвхөн
	   1 л бүхэл тоо авна. Харин pair<int,int> a; гэсэн тохиолдолд a гэсэн
	   хувьсагч нь 2 тоо зэрэг авж чадна гэсэн үг юм. Үүнийг int a[2];
	   гэхэд болох ч энэ 2 нь тус тусдаа буюу a[0], a[1] гэсэн 2 өөр 
	   хувьсагчууд юм. Харин pair бол энэ 2 нь салахгүй үргэлж хамтдаа 
	   явна гэсэн үг. Харин энэ хосын эхний байрлалдах утгад хандахыг 
	   хүсвэл a.first, 2 дахь бол a.second гэхэд л болно. pair нь бичсэнчлэн 
	   хос болгодог гэсэн тул pair< pair<int,int>, int> > a; гэж болох ба 
	   энэ нь 3 ширхэг тоо авах ба хандахдаа a.first.first, a.first.second, 
	   a.second гэнэ. pair<төрөл, төрөл> гэсэн бүтэцтэй.
	*/
	pair<int,int> a; // a нь 2 int агуулах нэг хувьсагч юм.
	a.first = 24; 	// a хувьсагчийн эхнийхэд нь 24 гэсэн утга оноож байна.
	a.second = 7;	// a хувьсагчийн хоёрдахь нь 7 гэсэн утга оноож байна.

	cout << a.first << " " << a.second << endl; // хэвлэх

	vector< pair<int,int> > v; // vector-ын элемэнт бүр нь 2 тоо агуулдаг гэсэн утгатай.
	v.push_back( make_pair( 14, 3 ) ); 	// 14, 3 гэсэн 2 тоог нийлүүлээд хос болгоод үүнийгээ 
										// v гэсэн vector-т нэмж байна.

	cout << v[0].first << " " << v[0].second << endl; // хэвлэх.

	pair<int, string> b; // int, string гэсэн 2 төрлийu хос болгож байна.
	b.first = 13; // эхнийхэд нь 13 гэсэн утга оноож байна.
	b.second = "Reasons Why"; // хоёрдахьд нь Reasons Why гэсэн утгыг оноож байна.

	cout << b.first << " " << b.second << endl; // хэвлэх.

	pair < string, pair<string, string> > c; // string, int, int гэсэн 3-ыг хос болгож байна.
	c.first = "Oilgomjtoi"; // эхнийхэд нь Oilgomjtoi гэсэн утга оноож байна.
	c.second.first = "Baigaa"; // хоёрдахьд нь Baigaa гэсэн утга оноож байна.
	c.second.second = "Biz"; // гуравдахьд нь Biz гэсэн утга оноож байна.

	cout << c.first << " " << c.second.first << " " << c.second.second << endl;

	return 0;
}