1. Pascal / Говнокод #10586

    +101

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    procedure TForm1.Button1Click(Sender: TObject);
    const
    n=4;
    var
    x,y,r: integer;
     x1, y1, x2, y2, x3, y3, x4, y4,i : real;
      a: string;
    begin
      //n:=strtoint(edit1.text);
       x:=strtoint(edit2.text);
        y:=strtoint(edit3.text);
          x1:=strtofloat(edit4.text);
           y1:=strtofloat(edit5.text);
             x2:=strtofloat(edit1.text);
           y2:=strtofloat(edit6.text);
             x3:=strtofloat(edit7.text);
           y3:=strtofloat(edit8.text);
             x4:=strtofloat(edit9.text);
           y4:=strtofloat(edit10.text);
              if (y1>y) or (y1<0) or (x1>x)or (x1<0)  then
            showmessage('дачник 1');
              if (y2>y) or (y2<0) or (x2>x+x)or (x2<0)  then
            showmessage('дачник 1');
            if (y3>y) or (y3<0) or (x3>x+x)or (x3<0)  then
            showmessage('дачник 1');
            if (y4>y) or (y4<0) or (x4>x+x)or (x4<0)  then
            showmessage('дачник 1');

    условие не лучше решения)
    "Всем известно, что дачники – народ странный. Строят они свои дачи непонятно где, да и выращивают там непонятно что и непонятно зачем. А уж как они туда добираются, это другая история: кто на автобусе, кто на электричке, кто на автомобиле, ну а кто-то во-все пешком ходит от дома и до самого участка. Так что не стоит удивляться, если вдруг Вы узнаете, что некое садоводческое товарищество располагается на острове, а дачники добираются до него самолетом. Да еще и на этом острове может не быть посадочной полосы, так что высадиться на остров можно, только прыгая с парашютом (мы уж не рассматриваем то, как они возвращаются с дач домой). Рассмотрим этот уникальный случай. Пилот всегда старается осуществить высадку парашютистов таким образом, чтобы дачники приземлялись как можно ближе к своим прямоугольным участкам. Пилоту интересно знать: сколько дачников приземлится на свои участки? Помогите ему решить эту задачу!"
    O_o

    Запостил: qwerty13, 05 Июня 2012

    Комментарии (6) RSS

    • Ну если это вся задача, без каких либо входных данных, то можно было проще:

      randomize;
      x:=random(9);
      showmessage('Количество дачников, приземлитвшихся на свои участки: '+inttostr(x));

      А потом корчить покерфейс и объяснять, почему ты прав, и почему автору надо выпить яду.
      Ответить
    • форматирование супер
      Ответить
    • показать все, что скрытоКГ / АМ!
      Ответить
    • должники массово сдают лабы?
      Ответить
    • если не ошибаюсь, задача с ACMP.ru, как-то давно я её тоже решал, будучи ещё школьником, когда увлекался олимпиадами

      import java.io.FileNotFoundException;
      import java.io.FileReader;
      import java.io.PrintWriter;
      import java.util.Scanner;
      import static java.lang.Math.abs;
      import static java.lang.Math.sqrt;
      import static java.lang.Math.pow;
      
      public class Main {
          private static final double EPS = 1E-5;
          
          public static void main(String[] args) {
              Scanner sc = null;
              PrintWriter pw = null;
              try {
                  sc = new Scanner(new FileReader("input.txt"));
                  pw = new PrintWriter("output.txt");
              } catch (FileNotFoundException e) {}
              
              
              int n = sc.nextInt(), ans = 0, x[] = new int[6], y[] = new int[6];
              while (n-- > 0) {
                  for (int i = 0; i < 5; ++i) {
                      x[i] = sc.nextInt();
                      y[i] = sc.nextInt();
                  }
                  x[5] = x[1];
                  y[5] = y[1];
                  double square = sqrt(pow (x[1] - x[2], 2D) + pow (y[1] - y[2], 2D)) * sqrt(pow (x[2] - x[3], 2D) + pow (y[2] - y[3], 2D));
                  for (int i = 1; i < 5; ++i) {
                      double a = sqrt (pow (x[0] - x[i], 2D) + pow (y[0] - y[i], 2D)),
                              b = sqrt (pow (x[0] - x[i + 1], 2D) + pow (y[0] - y[i + 1], 2D)),
                              c = sqrt (pow (x[i] - x[i + 1], 2D) + pow (y[i] - y[i + 1], 2D)),
                              p = (a + b + c) / 2D;
                      square -= sqrt (p * (p - a) * (p - b) * (p - c));
                  }
                  ans += abs(square) <= EPS ? 1 : 0;
              }
              pw.println(ans);
              
              sc.close();
              pw.flush();
              pw.close();
          }
      }
      Ответить

    Добавить комментарий