Софтуерно Инженерство
Loading...
fbinnzhivko avatar fbinnzhivko 1574 Точки

1. if ( n < 1){ Console.WriteLine("No");     return; }  Тази проверка не ти трябва.
2. num1 num2 num3  num4 - На мен нищо не ми говорят имената на тези променливи.
3.Тези ограничения спазваш ли ги във твоето решение?
-nleft < rightn

-ntop < bottomn

Готово решение

 

0
valchak avatar valchak 58 Точки

1. Да, тази проверка е излишна. Просто си търсих грешката и почнах да проверявам всичко с надеждата да се реши проблема.

2 Имената наистина не са много описателни. 

sum1=x1;

sum2=y1;

sum3=x2;

sum4=y2;

Имената ще ги сменя.

3. Грешката действително ми беше в условията на циклите. При третия for-цикъл променливата (sum3=x2;) трябва винаги да е с едно по-голяма от (sum1=x1), иначе при равенство между двете променливи (x1=x2), нямаме правоъгълник, а линия. Същото се отнася и за y1 и y2.

  for (int x1 = -n; x1 <= n; x1++)
            {
                for (int y1 = -n; y1 <= n; y1++)
                {
                    for (int x2 = x1+1; x2 <= n; x2++)
                    {
                        for (int y2 = y1+1; y2 <= n; y2++)
                        {....

Линк за преправеното решение:http://pastebin.com/ShZ5SRTS

 

Интересното е, че задачата върви също с  -n= x1<= 0  и  -n= y1<= 0 и в Judg-a дава също 100 точки.

Линк за решението с -n= x1<= 0  и  -n= y1<= 0 : http://pastebin.com/eB3GaJz1

 

 

 

0
25/02/2017 19:50:11