Teleport Points
https://judge.softuni.bg/Contests/Practice/Index/104#3
Задачата е некоректна
Начертах втория пример и според мен авторското решение дава отговор с 6 или 5 по-малък от верния (зависи дали точката [0 0]е решение).
Oставям тук моя чертеж. Умножил съм всичко по 1/0.4 за да е подходящ мащаба.
Стъпката става равна на едно, радиусът на 25, а върховете на правоъгълника идват на [-50 -7.5] [50 -7.5] [50 7.5] [-50 7.5]
От съображения за симетрия разглеждам само първия квадрант и за момента не броя точките върху координатните оси. В първи квадрант има 7 реда по 24 точки (от корен от (25*25-1*1) до корен от (25*25 - 7*7) ) това са 168 точки. В четирите квадранта общо има 168*4 = 672 точки. Броят на точките по самите оси е равен на дължината им закръглена надолу, 25+25+7+7=64, 672 + 64 = 736 + точката, в която Deadpool стои в този момент = 737. Отговорът на автора е 731. Да приемем, че аз не съм разбрал и Wall hit Ouchie! означава, че не може да се телепортира в точка принадлежаща на стената. Махайки тези 4 точки остават 733. Да приемем, че точката, в която е той не се брой - 732. Отговорът на автора все още се различава с една точка.
Попитах приятел от ФМИ за помощ.Той потвърди пресмятанията ми и стигна до извода, че единственото логично обяснение е 6-те точки принадлежащи на окръжността да не се броят, защото Deadpool може да се телепортира само във окръжността. Така наистина се получава верния отговор, но авторът е написал Wall hit Ouchie! в едната от тези точки, което предполага, че Deadpool предупреждава да не броим тези точки, защото не иска да се удря в стената - устройството може да го телепортира в точка от окръжността. Дори това да е така не е казва дали точката [0 0] се брои. За какво му е да се телепортира в себе си?!
Ако въобще някой е решавал задачата нека прати чертеж, но се съмнявам. Математиката и физиката не се ценят в Софтуни.
Ако ще и -1234567890 да дава програмата ми това разбира се няма значение, защото постът няма общо с кода или резултата от програмата ми :).
http://postimg.org/image/fqiwlrv6z/
Разбира се, това не е първата абсурдна задача, на която попадам, но този път логиката на автора не е такава, че да можеш да си нагласиш решението по "Какво ли може да си е мислил този човек, докато пише задачата, защото не е това, което е написал?".
Нито една от точките не е върху стената във втория пример (който аз съм начертал на лист хартия). В оригиналните стойности стъпката е 0.4, а стената е на 3 и -3, което значи, че последната точка е на 2.8 и аз съм я преброил правилно (при мен * 2.5 точката е на 7, а стената на 7.5).
Как точно съм броил някоя точка два пъти като аз ги броя ред по ред квадрант по квадрант?
Ако все още не сте съгласни ще начертая на стената вкъщи задачата и ще номерирам точките една по една.
Мислете каквото решите!
Задачата е категорично грешна!
Здравей, колега. Правиш грешката, че си мислиш като увеличиш всички стойности еднакво трябва да получиш същия резултат, но грешиш. Въведи твоите стойности в кода който е представил автора и виж че тогава отговора на задачата му е точно 737.
Сметни задачата с точно дадените вход и изход и когато получиш разлика, тогава може и да гледаме дали наистина е сгрешена.
Т.е. решението на автора е грешно само при някои стойности? Разбира се, че нямам грешка, защото коефициентът ми е само за зуумване така да се каже и навсякъде, където го има в алгоритъма се съкращава. Представи си, че си начертал оригиналните координати и една стъпка е 0.4 сантиметра, а после зуумнеш 2.5 пъти и измериш дължината на стъпката отново - тя ще е точно сантиметър, но изображението ще е същото и броят на точките ще е същия. Но няма проблем, мога да го начертая и със стъпка 0.4 ако не се съгласите.