IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> Треугольные волны
klem4
сообщение 1.12.2010 22:43
Сообщение #1


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Всем привет smile.gif

Решил в качестве хобби в последнее время убить двух зайцев, поизучать с++ и порешать интересные задачки, нашел сайт с онлайнтестером и начал решать. На одной из задач (достаточно простой по моему мнению), мне упорно заявляют Wrong answer mad.gif Где и в чем моя ошибка я понять не могу, подозреваю, что в силу недостаточного знания английского, не точно понял формат ввода/вывода данных или часть условия, хотя все кажется ясным.

Задание (на английском языке) находится тут: http://acm.uva.es/p/v4/488.html
Еще одно описание с тестовыми данными тут: http://www.algorithmist.com/index.php/UVa_488
Онлайн судья тут: http://uva.onlinejudge.org/

мой код тут:


#include <iostream>
#include <string>
#include <vector>

using namespace std;

int tests, freq, ampl;
string blank, result_str;

string get_wave( int a )
{
	string wave;
	vector<string> lines;

	for (int i = 0; i < a; i++ )
	{
		string line;
		char c = (char)(49 + i);

		for ( int j = 0; j <= i; j++ )
		{
			line.push_back(c);
		}
		lines.push_back(line);
	}

	for (int i = 0; i < 2 * a - 1; i++)
	{
		int idx = i < a ? i : (2*a - i - 2);

		wave.append(lines[idx]);
		wave.append("\n");
	}

	return wave;
}

int main()
{

	cin >> tests; // читаем кол-во тестов
	getline( cin, blank ); // читаем пустую строку

	while ( --tests >= 0 )
	{
		cin >> ampl; // по каждому тесту читаем 2 подрят идущих строки с амплитудой и частотой
		cin >> freq;
                // далее никаких пустых строк не читаем, получаеим и сохраняем результат для данного теста и переходим к чтению следующих 2-х строк (если это не последний тест)
		string wave = get_wave( ampl );
		for (int i = 0; i < freq; ++i )
		{
			result_str.append( wave );
			if (!( i == freq - 1 && tests == 0))
			{
				result_str.append("\n");
			}
			else
			{
				result_str.erase(result_str.length() - 1);
			}
		}
	}

	cout << result_str;
    return 0;
}



Сообщение отредактировано: klem4 - 1.12.2010 23:24


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 17.07.2025 18:57
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"