Loading...
quickben avatar quickben 966 Точки

[Useful Info] C# Basics Exam - Лесен начин да не ни дава "Лимит време" и "Лимит памет"

Колеги искам да споделя един "hint" относно задачите със вложени цикли. (№4)

Ако се получава така, че програмата ви дава правилни резултати, но Judge-a ви дава "лимит време" и/или "лимит памет" и не се сещате за друго решение или нямате време да го измислите има сравнително лесен начин да използвате вашето работещо решение.

Просто го напишете на C++. 

Явно C++ работи по-бързо от C# и използва по-малко памет и по този начин ако прехвърляте лимитите в разумни граници мисля, че е най-лесно просто да използваме опцията в Judge-a да предадем код на C++.

Да, но аз не съм писал никога на C++! - Няма значение, както ни е казвано хиляда пъти тук се учим първо на програмни принципи и практики и след това на определени езици и тн.

Какво ни трябва:

1. Една добра книга за C++ (примерно ТАЗИ )

Просто за да видим разликите в синтаксиса, въобще не ни трябва да задълбаваме особенно на изпита.

Използваме search опцията в нашата програма за да пестим време.

2. Компилатор ( ТОЗИ е доста лесен за употреба, буквално Next Next Finish )

Реално и компилатор не ни трябва, но judge-a има малък прозорец и на мен ми е по лесно да си напиша решението в компилатора и после да го копирам.

Ето и един пример. Задача №4 Poker Straight от C# Basics 28 April

Докарах я да ми вади правилни резултати, но ми дава лимит време. Пробрах доста неща, нищо не помогна. Даже помолих за помощ колегите във форума и те естествено ми преложиха различни варианти за решението на задачата, но ми е трудно да разбера логиката на друг човек, а на изпита се съмнявам, че mihayloff14 или nikola.m.nikolov (или някой друг напреднал колега) ще са до мен да ударят едно рамо :) Истината е, че просто нямам време(мързел?) да се уча да решавам този тип задачи по-друг начин, определено ще положа усилия в тази насока след изпита но 1-2 дена мисля, че за мен са малко за да си променя "мисленето" относно определени задачи.

Poker Straight C#   Memory: 8.13 MB | Time: 0.452s | Points 0/100 

Poker Straight C++ Memory: 2.83 MB | Time: 0.122 s | Points 100/100

За мен има само една съществена разлика и тя е, че в C++ всички променливи трябва да бъдат декларирани и инициализирани преди употребата им. Judge системата даже си казва.

Вярно е, че този тип решения са "тромави", но на 25-ти нямаме изпит по КПК :-)

ENJOY!

Тагове:
5
Programming Basics
boyanov avatar boyanov 65 Точки

Това звучи по-трудно отколкото да си оптимизирам C# програмата. Все пак е интересно че C++ е 3-4 пъти по-бърз.

2
quickben avatar quickben 966 Точки

въпроса е ако не ти идва идея как да си оправиш програмата или примерно си на изпит и ти остават 30 минути до края и нямаш време тепърва да мислиш нов начин да решиш задачата :)

иначе определено си прав, че би трябвало да можем да се вписваме в лимитите :)

0
kliko avatar kliko -2 Точки
С++ е 25% по- бърз и доста кофти език. Можеш да правиш каквото си искаш и ще ти се компилира. Можеш да излезеш от даден масив примерно и няма да се усетиш. С# е достатъчно бърз, а и както казва колегата по- горе ползвайте пойнтъри
-1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.