Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет qwerty ([info]qwerty)
@ 2010-01-24 17:11:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Задачка

Есть одномерный массив целых. В начале его расположен массив A длиной a, в конце B длиной b, а посредине не интересующий нас мусор длиной c. Требуется красивым образом переместить B в начало, за ним расположить A, причем сделав при этом не более a+b чтений и записей в массив. Судьба мусора не интересует. Файлы, посторонняя память и рекурсия категорически отсутствуют.


(Читать комментарии) - (Добавить комментарий)

Re: ХЗ как тут форматировать
[info]blue_slonopotam
2010-01-26 03:56 (ссылка)
int nod( int a, int b )
{
    int tmp;
    while( tmp = a % b )
    {
        a = b;
        b = tmp;
    }
    return b;
}

	for( int a = 0; a < 100; a++ )
	    for( int c = 0; c < 100; c++ )
	        for( int b = 0; b < 100; b++ )
	        {
	            memset( M, -1, 300 * sizeof(int) );
	            for( int i = 0; i < a; i++ )
	                M[i] = b+i;
	            for( int i = 0; i < b; i++ )
	                M[a+c+i] = i;
	                
	            swapAB( a, c, b );
	            
	            for( int i = 0; i < a+b; i++ )
	                if ( M[i] != i )
	                    puts( "Vsye propalo!" );
	            
	        }


(Ответить) (Уровень выше)


(Читать комментарии) -