Като има задача за домашно ще гледаме да я има и в Spoj0 (http://milo0.no-ip.org/spoj0/index.pl)
Там може да си пробвате дали ви работи решението. Ако там получите OK, значи работи. Можете тогава да я пратите в Moodle, за да я проверим и да ви дадем нужните точки. Не се гледат изпратени решение в Spoj0, той е само за проверка. Гледат се тези в Moodle.
Моля тези, които са пратили като решения на първа задача submission IDs да пратят наново сорс кодовете си вместо тези IDs. Ако нямате сорс кодовете ще видим какво ще измислим. Занапред ще се приемат само сорс кодове решаващи дадена задача за домашно!
Тони
Няма нужда. Първия път е изключение явно, всеки преподаващ е измислил някакъв начин да оцени хората. От следващия път нататък вече се гледа какво е пратено в Мудъл, а Spoj0 се ползва само, за да си пращате решенията и да проверявате дали работят.
Тази 3-та задача от днес я има качена сега в Мудъл за тези, които искат да я пратят за 10 точки. Качил съм и една задача от следващия път, по темата за прости сортирания. Нея можете също да пращате, като за нея през тази седмица ще получите 20 точки. Като мине следващото занятие вече ще я оценяваме на 10 точки и ще има още една седмица за изпращането и.
Тони
Относно частта от условието : " На първия ред са зададени броят редове във входа" , на примерния тест имаме 4 за начало на входния файл, но имаме 8 реда. Да не би да става въпрос за брой тестове, а не брой редове ?
Ако говориш за първите задачи (седмица 1), ще ги оправя и в spoj0 довечера...
За втория ти мил коментар: Какво точно имаш предвид под подредете условията като хората?
Тони
Прави по-конструктивни коментари, за да извличате всички някаква реална полза от тях
Може да пробваш сега, защото пипнах една настройка, дано помогне.
Ако не - може да пратиш на Антон Желязков по мейл новото си решение, той ще го провери.
Между другото новата задача за тръбите я има вече в сподж0.
Нещо прекалено много проблеми има напоследък с тея задачи, ще вземем мерки занапред да се ловят тези грешки предварително, че става супер досадно за всички...
Имам въпрос относно задачата за голямото сортиране. Написах я и я тествах с мой си тестове и смятам че е ОК. Пуснах теста който е даден в moodle и я чаках към 20 минути , нищо не изкара но не беше зациклила. След това разбрах че самото четене от файл изисква прекалено много време защото ми стана любопитно колко са числата във файла и след това видях. Затова въпроса ми е следният как в java ще се прочетат повече от 200 000 000 числа за толкова малко време и ще се обработят ? Вторият въпрос е как ще се определя дали програмата писана от нас е правилна само на този тест или ще се генерират по малки файлове като ограничението за N ще е малко число ил само върху този файл?
Благодаря предварително !
Четене на файл и добавяне на числата в масив:
StringBuilder sb = new StringBuilder();
while ((c = reader.read()) != -1)
{
if (c != 32)
{
sb.append((char)c);
}
else
{
memory[counter] = Integer.parseInt(sb.toString());
counter++ ;
sb.setLength(0);
}
На първия впрос като гледам си получил някакви отговори.
Програмата я тествам и с друг голям файл, но ви изпратих този, понеже този е нареден и може да се компресира до 5MB. Общо взето разглеждам и сорса, понеже не искам да ми затриете файловете по харда или да зацикли програмата и да ми запълни свободното място по харда :)
За числото N - избирам го такова, че временните файлове да са най-много 20-30. Не се очаква програмата да работи с 200MB файл и N=1.
Izvinqwam se za latinicata, oba4e w momenta nqmam kirilica na PC-to.
Predpolagam, 4e sym typ, oba4e taq zada4a na Pe6o Hakera mi se struwa, 4e e hamiltonov cikyl, koeto bi trqbwalo da dawa time limit pri podhodq6ti testowe. Izvinqwam se za spama, ako ne sym praw.
Благодаря предварително!!!
Сега не мога да ти гарантирам че имаш 160 обаче, трябва да се проверят.
може ли да проверите дали тестовете на flowers са ок, понеже пуснах програма, която само чете входа в spoj0 и ми даде tl1, а съм спазила начина на четене от условието.
#include <stdio.h>
using namespace std;
const int MAXN = 107;
int price[MAXN][MAXN];
int sol[MAXN][MAXN];
int floCnt, vaseCnt;
int main()
{
scanf("%d%d", &floCnt, &vaseCnt);
while (!(floCnt == 0 && vaseCnt == 0))
{
for (int i = 1; i <= floCnt; i++)
{
for (int j = 1; j <= vaseCnt; j++)
{
scanf("%d", &(price[i][j]));
}
}
//solve();
scanf("%d%d", &floCnt, &vaseCnt);
}
return 0;
}
ето този код ми даде tl1, подозирам липсата на двете нули накрая :)
В условието никъде не е записано, че ако съществуват две подредби с една и съща естетическа стойност, трябва непременно да отпечатаме тази, която поставя цветето в най-лявата възможна ваза. Така де, щом не го пише, значи можем да си принтнем кой да е път...нали? Или пък просто да го пишеше в условието... :)
Склонен съм да подозирам, че е в кода ти. Не съм го гледал хич подробно и не мога да бъда сигурен в нищо, но това, което видях е: правиш нещо false, викаш DFS, правиш нещото true. На мен това ми прилича на brute force. Входният файл е 3MB (винаги е бил толкова :) ) и наистина не мисля, че това някога е минавало.
Exception in thread "main" java.lang.StackOverflowError
at program.dfs(program.java:85)
at program.dfs(program.java:85)
at program.dfs(program.java:85)
...
...
(1024 такива реда)