/*
 * arrays.cpp
 *
 *  Created on: 15.11.2012
 *      Author: trifon
 */


#include <iostream>
using namespace std;

int main1()
{
	const int MAX = 100;
	int a[MAX] = { 0 };
	int b[MAX] = { 0 };
	int x = 5;
	cout << a[0] << ' ' << x << endl;
	// a[10] = 10; лошо!
	// a[-1] = 5; лошо!
	cout << "a==b? " << (a == b) << endl;
	cout << "a==a? " << (a == a) << endl;

	int n;
	cout << "n = ";cin >> n;

	for(int i = 0; i < n; i++)
	{
		cout << "a[" << i << "] = ";
		cin >> a[i];
	}

	for(int i = 0; i < n; i++)
		b[i] = a[i] + 1;

	for(int i = 0; i < n; i++)
		cout << "b[" << i << "] = " << b[i] << endl;

	int sum = 0;
	for(int i = 0; i < n; i++)
		sum += a[i];
	cout << "Сумата на числата е " << sum << endl;

	cout << "x = ";cin >> x;

	int i = 0;
	while(i < n && a[i] != x)
		i++;
	// i == n || a[i] == x
	cout << x;
	if (i == n)
		cout << " НЕ";
	cout << " се среща в масива" << endl;

	i = 0;
	while(i < n-1 && a[i] <= a[i+1])
		i++;
	// i == n-1 || a[i] > a[i+1]
	cout << "Масивът";
	if (i < n-1)
		cout << " НЕ";
	cout << " е монотонно растящ" << endl;

	i = 0;
	int j = n;
	// i < n-1 - не сме обходили всичко
	// j == n - на предната стъпка сме нямали повторение
	while(i < n-1 && j == n)
	{
		// среща ли се a[i] в a[i+1]...a[n-1]?
		j = i + 1;
		while(j < n && a[i] != a[j])
			j++;
		// j == n || a[i] == a[j]
		// ако j == n, тогава a[i] не се повтаря
		// ако j < n, тогава a[i] == a[j]
		i++;
	}
	// i == n-1 || j < n
	cout << "Масивът";
	if (j < n)
		cout << " НЕ";
	cout << " е множество" << endl;

	// метод на пряката селекция (selection sort)
	for(i = 0; i < n - 1; i++)
	{
		int min = i;
		for(j = i + 1; j < n; j++)
			if (a[j] < a[min])
				min = j;
		// a[min] е най-малък измежду a[i]...a[n-1]
		// трябва да разменим a[i] с a[min]
		if (i != min)
		{
			int x = a[i];
			a[i] = a[min];
			a[min] = x;
		}
		// a[0]..a[i] редицата е подредена
	}

	for(i = 0;i < n; i++)
		cout << "a[" << i << "] = " << a[i] << endl;

	return 0;
}

int main()
{
	const int MAX = 100;
	int a[MAX] = { 0 }, b[MAX] = { 0 }, c[2*MAX] = { 0 };
	int n,m;

	cout << "n = ";cin >> n;

	for(int i = 0;i < n; i++)
	{
		cout << "a[" << i << "] = ";cin >> a[i];
	}

	cout << "m = ";cin >> m;
	for(int i = 0;i < m; i++)
	{
		cout << "b[" << i << "] = ";cin >> b[i];
	}

	int i = 0, j = 0, k = 0;
	/*	while (i < n && j < m)
	{
		if (a[i] < b[j])
		{
			c[k] = a[i];
			i++;
		} else
		{
			c[k] = b[j];
			j++;
		}
		k++;
	}

	if (i == n)
	{
		while (j < m)
		{
			c[k] = b[j];
			j++;
			k++;
		}
	} else {
		while (i < n)
		{
			c[k] = a[i];
			k++;
			i++;
		}
	}
	// i == n || j == m
	 */

	while (i < n && j < m)
	{
		if (a[i] < b[j])
			c[k++] = a[i++];
		else
			c[k++] = b[j++];
	}
	// i == n || j == m

	while(i < n)
		c[k++] = a[i++];
	while(j < m)
		c[k++] = b[j++];

	for(i = 0;i < k; i++)
		cout << "c[" << i << "] = " << c[i] << endl;

	return 0;

}