Олимпиадный тренинг

Задача . rRyz_2007_G_Домашние задания


Задача

Темы:
Петя очень не любит делать домашние задания. Поэтому он просит отличников из своего класса сделать их за него. За это он дает им шоколадные конфеты. Так как Петин папа работает на шоколадной фабрике, то у Пети всегда много конфет.
Но отличники — капризные ребята. В разные дни они просят разное количество конфет за выполнение домашнего задания. Про каждого отличника в классе Петя знает, сколько конфет придется ему дать в i-й день учебы, чтобы тот сделал за него домашнее задание. Кроме того, каждый день делать домашние задания за Петю не согласится ни один отличник, и поэтому, про каждого отличника Петя знает, какое максимальное количество домашних заданий тот согласится сделать за него подряд.
Требуется написать программу, которая по информации о количестве конфет, которое отличники просят за свои услуги, а также о максимальном количестве дней подряд, которое каждый отличник готов делать домашние задания за Петю, определяет, какое минимальное количество конфет требуется Пете, чтобы все домашние задания были за него сделаны.
Формат входных данных
Первая строка входного файла содержит два числа: n — количество учебных дней, в течение которого Петя хочет, чтобы за него отличники делали домашние задания;
m — количество отличников в классе у Пети (1 ≤ n ≤ 100, 2 ≤ m ≤ 100).

Вторая строка входного файла содержит m целых чисел ai  (1 ≤ im), задающих для каждого отличника максимальное количество заданий подряд, которое он согласен выполнять за Петю (1 ≤ ain).
Следующие m строк содержат по n неотрицательных целых чисел, при этом j-е число
i-й строки означает количество конфет, которое Пете придется отдать i-му отличнику, чтобы он сделал за Петю домашнее задание в j-й день. Все эти числа не превышают 106. Числа в строках разделяются пробелами.

Формат выходных данных
На первой строке выходного файла выведите одно число — минимальное количество конфет, которое необходимо Пете. На второй строке выведите n целых чисел, каждое из которых определяет для каждого дня номер отличника, который должен решать домашнее задание за Петю в этот день.
Примеры входного и выходного файлов
входные данные выходные данные
5 2
2 2
1 3 6 4 1
5 2 3 1 1
9
1 1 2 2 1

 

time 500 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя