ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1115. Корабли

Please help with solution
Послано g00d 23 ноя 2015 01:46
I wrote program on Python 3, but second test is wrong for me. Why? I need a hint. Maybe, you can wrote test for my program?

Idea:
1. sort length descending
2. take first that smaller SUM in row
3. reduce SUM and colored ship
4. take next
5. finally for SUM if they == 0 -> go to next row


My solution:

[n, m] = [ int(x) for x in input().split() ]
a = []
for i in range(n):
    a.append(int(input()))
b = []
for i in range(m):
    b.append(int(input()))
a.sort(reverse=True)
color = [-1 for x in range(n)]

i = 0
while i < m:
    s = b[i]
    z = 0
    while z < n:
        aa = []
        j = z
        while s > 0:
            while j < n and a[j] > s :
                j += 1
            if j >= n:
                for ee in aa:
                    s += a[ee]
                    color[ee] = -1
                aa = []
                break
            elif color[j] != -1:
                j += 1
            else:
                s = s - a[j]
                aa.append(j)
                color[j] = i
        z += 1
        if s == 0:
            break
    i += 1
for i in range(m):
    aa = []
    cnt = 0
    for j in range(n):
        if color[j] == i:
            aa.append(a[j])
            cnt += 1
    print(cnt)
    aa.sort(reverse=True)
    ab = [str(x) for x in aa]
    ss = " ".join(ab)
    print(ss)
Re: Please help with solution
Послано Дмитрий 15 апр 2016 03:30
please, never post your code here! use pastebin or ideone!