[23/10/2021 - старт курса "Алгоритмы и структуры данных" от ХТО] --> регистрация

Справка


Принцип роботи системи тестування DOTS

  • Веб-інтерфейс тестуючої системи DOTS надає учням доступ до наборів алгоритмічних завдань. Такі набори завдань називаються контестами або турнірами, їх створюють користувачі з правами викладача

    Розв'язком задачі є текстовий файл з кодом програми, яку складено однією з дозволених мов програмування. Якщо Ви вважаєте, що вирішили якусь задачу, Ви посилаєте його на перевірку через інтерфейс системи тестування. Результат перевірки надається Вам через систему тестування протягом декількох хвилин після відправки. Ви можете надсилати рішення однієї і тієї ж задачі кілька разів, можете чергувати посилки рішень різних завдань.

    Перевірка програми-рішення здійснюється шляхом автоматичного запуску її на кількох секретних наборах вхідних даних (тестів). Конкретний тест зараховується як правильний, якщо Ваша програма закінчила свою роботу за вказаний час, не перевищила обмеження пам'яті, а формат та вміст вихідних даних є правильними для цього тесту. Тому Ви повинні суворо дотримуватися формату вихідних даних. Розв'язання задачі вважається правильним тоді і лише тоді, коли воно успішно пройшло всі тести. Для кожного тесту система тестування за результатами перевірки рішення може видати один з вердиктів, наведених нижче.

Вердикти тестуючої системи DOTS

  • Вердикт Опис вердикту
    OK

    Accepted. Рішення успішно відпрацювало на вказаному тесті. Якщо такий вердикт отримано на всіх тестах, це означає, що ви повністю вирішили завдання.

    CE

    Compilation Error. Помилка компіляції. Компілятор не створив файл, що виконується. Вам надається повне виведення компілятора. Можливі причини: синтаксична помилка в програмі, при відправці була вказана неправильна мова програмування.

    PE

    Presentation Error. Неправильний формат виводу. На вказаному тесті програма виводить дані, які не відповідають умові завдання. Можливі причини: програма виводить у вихідні дані сторонній текст; програма виводить недостатню кількість вихідних даних; використовується файлове введення/виведення і вихідний файл вказаний у програмі неправильно; вихідні дані взагалі створюються.

    WA

    Wrong Answer. На цьому тесті ваше рішення видає неправильну відповідь. Можливі причини: реалізований неправильний алгоритм, відбулося переповнення в цілісній змінній, речові значення виводяться з недостатньою точністю.

    TL

    Time Limit Exceeded. На цьому тесті перевищено час виконання програми, тобто. ваша програма працює довше, ніж допустимо для цього завдання. Можливі причини: алгоритм через помилку входить до безкінечного циклу; написаний алгоритм розв'язання задачі має неправильну асимптотику, тобто є неоптимальним та його треба спробувати покращити.

    ML

    Memory Limit Exceeded. На зазначеному тесті перевищено огранічні пам'яті, тобто. Ваша програма вимагає більше оперативної пам'яті, ніж допустимо для цього завдання. Можливі причини: алгоритм використовує великі структури даних; в алгоритмі відбувається дуже багато рекурсивних викликів.

    RE

    Runtime Error. На вказаному тесті програма неправильно завершила роботу, іншими словами, сталася помилка під час виконання програми. Можливі причини: розподіл на нуль, вилучення кореня квадратного з негативного числа, звернення до неіснуючих елементів масиву чи рядка тощо.

    FF

    Forbiden Function. Заборонена функція. На вказаному тесті програма викликала одну з функцій, яка може порушити роботу системи тестування.

Приклади розв'язків задач [Умови]

  • Задача A: "А плюс В"

    • Розв'язок задачі мовою програмування Pyhon (python3)

      a=int(input())
      b=int(input())
      print(a + b)
       

    • Розв'язок задачі мовою програмування C

      #include <stdio.h>
       
      int main() {
        int a, b;
        scanf("%d %d", &a, &b);
        printf("%d\n", a + b);
        return 0;
      }
       

    • Розв'язок задачі мовою програмування C++

      #include <iostream>
       
      using namespace std;
       
      int main() {
        int a, b;
        cin >> a >> b;
        cout << a + b << endl;
        return 0;
      } 


    • Розв'язок задачі мовою програмування Pascal

      var
        A, B : Integer;
      begin
        Read(A, B);
        WriteLn(A+B);
      end. 


    • Розв'язок задачі мовою програмування Java

      import java.util.*;
      import java.lang.*;
       
      class Main
      {  
          public static void main(String args[])
          {
              Scanner sc = new Scanner(System.in);
              int A = sc.nextInt();
              int B = sc.nextInt();
              System.out.println(A+B);
          }
      }


    • Розв'язок задачі мовою програмування C#

      using System;
       
      namespace Task_A
      {
          class Program
          {
              static void Main(string[] args)
              {
                  int a, b;
                  a = int.Parse(Console.ReadLine());
                  b = int.Parse(Console.ReadLine());
                  Console.WriteLine(a+b);
              }
          }
      }


  • Задача B: "Хто високий, а хто не дуже"

    • Розв'язок задачі мовою програмування Python

      F = int(input())
      D = int(input())
      H = (F * 12 * 2.54 + D * 2.54) / 100
      print(F, "'", D, '" = ', '%.2f' % H, "m.", sep="")


    • Розв'язок задачі мовою програмування C

      #include <stdio.h>
       
      int main() {
        int F, D;
        scanf("%d %d", &F, &D);
        double H = (F * 12 * 2.54 + D * 2.54) / 100;
        printf("%d'%d\" = %.2lfm.\n", F, D, H);
        return 0;
      }


    • Розв'язок задачі мовою програмування C++

      #include <iostream>
      #include <iomanip>
       
      using namespace std;
       
      int main() {
        int F, D;
        cin >> F >> D;
        double H = (F * 12 * 2.54 + D * 2.54) / 100;
        cout << F << "'" << D << "\" = " << fixed << setprecision(2) << H << "m." << endl;
        return 0;
      }


    • Розв'язок задачі мовою програмування Pascal

      var
        F, D : Word;
        H : Real;
      begin
        Read(F, D);
        H := (F * 12 * 2.54 + D * 2.54)/100;
        WriteLn(F,'''',D,'" = ', H:0:2,'m.');
      end.
       


    • Розв'язок задачі мовою програмування Java

      import java.util.*;
      import java.lang.*;
       
      class Main
      {  
          public static void main(String args[])
          {
              Scanner sc = new Scanner(System.in);
              int F = sc.nextInt();
              int D = sc.nextInt();
              double M = (F * 12 + D) * 25.4 / 1000;
              System.out.printf("%d'%d\" = %.2fm.", F, D, M);
          }
      }


    • Розв'язок задачі мовою програмування C#

      using System;
       
      namespace Task_B
      {
          class Program
          {
              static void Main(string[] args)
              {
                  int f, d;
                  f = int.Parse(Console.ReadLine());
                  d = int.Parse(Console.ReadLine());
                  double h = (f * 12 * 2.54 + d * 2.54) / 100;
                  Console.WriteLine("{0}\'{1}\" = {2:F2}m.",f,d,h);
              }
          }
      }


  • Задача C: "Купівля ручок"

    • Розв'язок задачі мовою програмування Python

      # зверніть увагу на введення даних!
      A, B = map(int, input().split())
      C, D = map(int, input().split())
      N = (C*100+D) // (A*100+B)
      M = (C*100+D) % (A*100+B)
      print(N)
      print(M // 100, M % 100)


    • Розв'язок задачі мовою програмування C

      #include <stdio.h>
       
      int main() {
        int A, B, C, D;
        scanf("%d %d %d %d", &A, &B, &C, &D);
        int N = (C*100+D) / (A*100+B);
        int M = (C*100+D) % (A*100+B);
        printf("%d\n%d %d\n", N, M / 100, M % 100);
        return 0;
      }
       


    • Розв'язок задачі мовою програмування C++

      #include <iostream>
       
      using namespace std;
       
      int main() {
        int A, B, C, D;
        cin >> A >> B >> C >> D;
        int N = (C*100+D) / (A*100+B);
        int M = (C*100+D) % (A*100+B);
        cout << N << endl;
        cout << M / 100 << ' ' << M % 100 << endl;
        return 0;
      }


    • Розв'язок задачі мовою програмування Pascal

      var
        A, B, C, D, M, N : LongInt;
      begin
        Read(A, B, C, D);
        N := (C * 100 + D) div (A * 100 + B);
        M := (C * 100 + D) mod (A * 100 + B);
        WriteLn(N);
        WriteLn(M div 100,' ',M mod 100);
      end.


    • Розв'язок задачі мовою програмування Java

      import java.util.*;
      import java.lang.*;
       
      class Main
      {  
          public static void main(String args[])
          {
              Scanner sc = new Scanner(System.in);
              int A = sc.nextInt();
              int B = sc.nextInt();
              int C = sc.nextInt();
              int D = sc.nextInt();
              int Z = A * 100 + B;
              int K = C * 100 + D;
              System.out.println(K/Z);
              System.out.println((K%Z/100)+" "+(K%Z%100));
          }
      }


    • Розв'язок задачі мовою програмування C#

      using System;
       
      namespace Task_C
      {
          class Program
          {
              static void Main(string[] args)
              {
                  int a,b,c,d;
                  string s = Console.ReadLine();
                  a = int.Parse(s.Split()[0]);
                  b = int.Parse(s.Split()[1]);
                  s = Console.ReadLine();
                  c = int.Parse(s.Split()[0]);
                  d = int.Parse(s.Split()[1]);
       
                  int price = a * 100 + b;
                  int sum = c * 100 + d;
                  int n = sum / price;
                  Console.WriteLine(n);
                  Console.WriteLine("{0} {1}",(sum - n * price) / 100, (sum - n * price) % 100);
              }
          }
      }


  • Задача D: "Мінімум та максимум із трьох чисел"

    • Розв'язок задачі мовою програмування Python

      a = int(input())
      b = int(input())
      c = int(input())
       
      mx = max(a, b, c)
      mi = min(a, b, c);
       
      print(mx * mx)
      print(mi * mi)


    • Розв'язок задачі мовою програмування C

      #include <stdio.h>
       
      int main() {
        int a, b, c;
        scanf("%d %d %d", &a, &b, &c);
        int mx = a;
        if (b > mx)
          mx = b;
        if (c > mx)
          mx = c;
       
        int mi = a;
        if (b < mi)
          mi = b;
        if (c < mi)
          mi = c;
       
        printf("%d\n%d\n", mx * mx, mi * mi);
        return 0;
      }


    • Розв'язок задачі мовою програмування C++

      #include <iostream>
       
      using namespace std;
       
      int main() {
        int a, b, c;
        cin >> a >> b >> c;
        int mx = max(a, max(b, c));
        int mi = min(a, min(b, c));
        cout << mx * mx << endl;
        cout << mi * mi << endl;
        return 0;
      }


    • Розв'язок задачі мовою програмування Pascal

      var
        A, B, C : LongInt;
       
      procedure swap(var A, B : LongInt);
      var
        C : LongInt;
      begin
        C := A; A := B; B := C;
      end;
       
      begin
        ReadLn(A, B, C);
        if A < B then swap(A, B);
        if B < C then swap(B, C);
        if A < B then swap(A, B);
        if B < C then swap(B, C);
        if A < B then swap(A, B);
        if B < C then swap(B, C);
        if A < B then swap(A, B);
        if B < C then swap(B, C);
        WriteLn(A * A);
        WriteLn(C * C);
      end.


    • Розв'язок задачі мовою програмування Java

      import java.util.*;
      import java.lang.*;
       
      class Main
      {  
          public static void main(String args[])
          {
              Scanner sc = new Scanner(System.in);
              int A = sc.nextInt();
              int B = sc.nextInt();
              int C = sc.nextInt();
              int maxVal = Math.max(Math.max(A, B), C);
              int minVal = Math.min(Math.min(A, B), C);
              System.out.println(maxVal * maxVal);
              System.out.println(minVal * minVal);
          }
      }


    • Розв'язок задачі мовою програмування C#

      using System;
       
      namespace Task_D
      {
          class Program
          {
              static void Main(string[] args)
              {
                  int a, b, c;
                  a = int.Parse(Console.ReadLine());
                  b = int.Parse(Console.ReadLine());
                  c = int.Parse(Console.ReadLine());
                  int max = Math.Max(a, Math.Max(b, c));
                  int min = Math.Min(a, Math.Min(b, c));
                  Console.WriteLine(max * max);
                  Console.WriteLine(min * min);
              }
          }
      }


  • Задача E: "Парне додатне"

    • Розв'язок задачі мовою програмування Python

      n = int(input())
      if n % 2 == 0 and n > 0:
        print("YES")
        print(n + 2)
      else:
        print("NO")
        if n <= 0:
          print(2)
        else:
          print(n + 1)


    • Розв'язок задачі мовою програмування C

      #include <stdio.h>
       
      int main() {
        int n;
        scanf("%d", &n);
        if (n % 2 == 0 && n > 0) {
          printf("YES\n");
          printf("%d\n", n + 2);
        } else {
          printf("NO\n");
          if (n <= 0) {
            printf("2\n");
          } else {
            printf("%d\n", n + 1);
          }
        }
        return 0;
      }


    • Розв'язок задачі мовою програмування C++

      #include <iostream>
       
      using namespace std;
       
      int main() {
        int n;
        cin >> n;
        if (n % 2 == 0 && n > 0) {
          cout << "YES" << endl;
          cout <<  n + 2 << endl;
        } else {
          cout << "NO" << endl;
          if (n <= 0) {
            cout << "2" << endl;
          } else {
            cout << n + 1 << endl;
          }
        }
        return 0;
      }


    • Розв'язок задачі мовою програмування Pascal

      var
        N : LongInt;
      begin
        ReadLn(N);
        if (N mod 2 = 0) and (N > 0) then
        begin
          WriteLn('YES');
          WriteLn(N+2);
        end else
        begin
          WriteLn('NO');
          if N<=0 then WriteLn(2) else WriteLn(N+1);
        end;
      end.


    • Розв'язок задачі мовою програмування Java

      import java.util.*;
      import java.lang.*;
       
      class Main
      {  
          public static void main(String args[])
          {
              Scanner sc = new Scanner(System.in);
              int N = sc.nextInt();
              if(N<0)
                  System.out.println("NO\n2");
              else if(N%2!=0)
                  System.out.println("NO\n" + (N + 1));
              else
                  System.out.println("YES\n" + (N + 2));
          }
      }


    • Розв'язок задачі мовою програмування C#

      using System;
       
      namespace Task_E
      {
          class Program
          {
              static void Main(string[] args)
              {
                  int a;
                  a = int.Parse(Console.ReadLine());
                  if (a <= 0)
                  {
                      Console.WriteLine("NO");
                      Console.WriteLine(2);
                  }
                  else
                  {
                      if(a % 2 != 0)
                      {
                          Console.WriteLine("NO");
                          Console.WriteLine(a + 1);
                      }
                      else
                      {
                          Console.WriteLine("YES");
                          Console.WriteLine(a + 2);
                      }
                  }           
              }
          }
      }


  • Задача F: "Важливе число"

    • Розв'язок задачі мовою програмування Python

      n = int(input())
      k = int(input())
       
      for i in range(k):
        print(n)


    • Розв'язок задачі мовою програмування C

      #include <stdio.h>
       
      int main() {
        int N, K;
        scanf("%d %d", &N, &K);
        for (int i = 0; i < K; i++)
          printf("%d\n", N);
        return 0;
      }


    • Розв'язок задачі мовою програмування C++

      #include <iostream>
       
      using namespace std;
       
      int main() {
        int N, K;
        cin >> N >> K;
        for (int i = 0; i < K; i++)
          cout << N << endl;
        return 0;
      }


    • Розв'язок задачі мовою програмування Pascal

      var
        N, K, I : LongInt;
      begin
        Read(N, K);
        for I := 1 to K do WriteLn(N);
      end.


    • Розв'язок задачі мовою програмування Java

      import java.util.*;
      import java.lang.*;
       
      class Main
      {  
          public static void main(String args[])
          {
              Scanner sc = new Scanner(System.in);
              int N = sc.nextInt();
              int K = sc.nextInt();
              for(int i = 0;  i< K; i++)
                  System.out.println(N);        
          }
      }


    • Розв'язок задачі мовою програмування C#

      using System;
       
      namespace Task_F
      {
          class Program
          {
              static void Main(string[] args)
              {            
                  int n = int.Parse(Console.ReadLine());
                  int k = int.Parse(Console.ReadLine());
       
                  for(int i=0;i<k;i++)
                  {
                      Console.WriteLine(n);
                  }
              }
          }
      }