Loading...
kenderov.emil avatar kenderov.emil 6 Точки

Encrypted Matrix - Проблем

Привет колеги,

Днес се занимавах със задачата Encrypted Matrix, която се е падала тази година на 29ти март на изпита. Първия ми вариант(код : http://pastebin.com/mg2X2Z6X). Джъджа ми отсъди 40 точки. Реших, че проблема може да е в начина, по който се опитвам да превърна стринга отново в инт масив(линии 99-104). ОК, намерих начин да мина без това и направих втори вариант, по-опростен(код: http://pastebin.com/KRGpE00v) където въвеждам потребителски int[] и процедура за превръщане на число в масив от цифри. И двата варианта работят при мен. Само че джъджа оцени втория по-зле:20 точки. Плийс, кажете ми къде е грешката. Благодарско предварително на всички.

0
Programming Basics
alex.mitev avatar alex.mitev 20 Точки

Здрасти, аз днес също я решавах. Всичко почна ок, може би не е най-оптималното , но това са ми познанията.

След като я направих, judge ми даде 0 точки.

Чак тогава, накрая, добавих space-овете, които просто не бях видял. Никъде не го пише, и аз си карах без тях.

Ето го кода:

http://pastebin.com/cES3mHks

Тази задача, предполагам, може да се направи и с обикноени стрингове за Оутпут, а не с двумерен масив, или бъркам?

Сега вижадм, че декларирах два пъти стринга в началото. Това е защото не разбрах условието, и бях вкарал всичко в един 

while, защото мислех, че ще се подават данни няколко пъти. Така в началото нулирах стринговете.

0
04/11/2015 18:48:13
StaVykoV avatar StaVykoV 169 Точки

Колега, това за празното място между цифричките го пише  във файла с домашното:

Output

The output data should be printed on the console.

You must print the matrix with a single space between the elements.

 

Иначе аз още в началото си пълня ASCII стойностите в един int масив и просто ползвам /10 и %10. Накрая пълня само диагонала на двумерен масив и в зависимост от наклонената чертичка печатам от ляво на дясно или обратното.

1
alex.mitev avatar alex.mitev 20 Точки

Да, така пише, но не съм гледал.

Не знаех, че липсващите стойности на масива се пълнят с нули. Аз отделно съм ги и напълнил с нули. 

VyKov, как избягваш проблема с промняната на дължината при енкрипването, ако използваш само един масив?

 

 

0
RoYaL avatar RoYaL Trainer 6849 Точки

Най-вероятно еккриптва и направо печата. Ако се получи N-цифрено число при умножението/събирането, просто печата N реда. И да, няма нужда от матрица (двумерен масив). Просто печаташ Х на брой нули, числото, още нули до края на реда :)

1
StaVykoV avatar StaVykoV 169 Точки

Да, не е нужен двимерен масив, но на мен ми е доста по - лесно от управление на стрингове и печатането им. Отделно че има малко сметки на ред по колко нули от всеки край се печатат а в 3 сутринта не ми се занимаваше :Д. Като цяло с двимерния масив мисля, че е по - бавно, тъй като имаме n*n само за печатането, но при това ограничение на входа n*n не е проблем явно.

Иначе промяната на размеря не ме бърка, тъй като аз си имам един брояч на цифрите. Ако е двуцифрено число просто прибавям и двете цифри и увеличавам брояча с 2. 

логиката ми енещо от сорта:

for(i....){

    matrix[count][count] = numbers[i]%10;

    count++;

    if(numbers[i]/10>0)

    {

        matrix[count][count]=numbers[i]/10;

        count++;

    }

}

0
alex.mitev avatar alex.mitev 20 Точки

StaVykoV, дай да видим целия код в pastebin. Мерси

0
StaVykoV avatar StaVykoV 169 Точки

Заповядай, дано е четливо и ти помогне :)

http://pastebin.com/CHbnpmqA

1
alex.mitev avatar alex.mitev 20 Точки

Мерси, кода е четим, да. НО не съм те разбрал.Аз останах с впечатление, че използваш 1 единствен масив, в който записваш първоначалните стойности, и една матрица за печатане.

0
06/11/2015 09:13:18
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.