A+B

Поделись знанием:
Перейти к: навигация, поиск

A+B — в спортивном программировании классическая пробная задача, использующаяся для ознакомления участников с тестирующей системой.[1]

На соревнованиях по программированию организаторы, как правило, вообще не смотрят в исходный код программы — специальная тестирующая система компилирует решение и запускает его на заранее подготовленном наборе тестов. Если решение даёт успешные результаты на входных данных всех тестов, задача считается решённой участником. При этом участник должен жёстко соблюдать правила олимпиады — вводить и выводить информацию в нужном формате, и не подключать к программе запрещённые модули (например, conio.h).

Длительность олимпиады, как правило, сильно ограничена, и непосредственно после её начала у участников уже нет времени для проверки возможностей тестирующей системы. К началу соревнований участникам необходимо уже уметь легко управляться с тестирующей системой и её интерфейсом. Чтобы ознакомиться с системой, перед основным туром олимпиады обычно проводят пробный тур, на котором участникам предлагают лёгкую задачу, алгоритм решения которой тривиален. Задачей пробного тура чаще всего и бывает задача «A+B».

Разумеется, на пробном туре может быть и любая другая несложная задача. Иногда делают несколько задач, чтобы участники могли попробовать ввод различных типов данных. Например, в одной задаче, как и в «A+B», нужно вводить числа, а в другой — строки. Сложность задач пробного тура также может варьироваться от таких простых, как «A+B», до более сложных, хотя слишком сложные задачи на пробном туре по понятным причинам давать не принято.

«A+B» — одна из немногих задач олимпиадного программирования, традиционно не имеющая сюжета.





Условие задачи

Даны 2 целых числа: A и B. Требуется вычислить их сумму.

Входные данные

Во входном потоке в единственной строке через пробел записаны два целых числа: A и B.

<math>(-10^9 \leqslant A,B \leqslant 10^9)</math>

Выходные данные

В выходной поток следует записать единственное целое число — сумму чисел A и B.

Пример

Исходные данные Результат
2 2 4
3 2 5

Решение задачи

Алгоритм решения

Алгоритм решения задачи «A+B» представляет собой простую последовательность действий, реализующуюся непосредственно за счёт возможностей ввода-вывода того или иного языка программирования. Можно оформить алгоритм следующим образом:

  1. Считать A
  2. Считать B
  3. Сложить A и B
  4. Вывести полученную сумму

Легко видеть, что сложность алгоритма T(A, B) ~ O(1). На любых данных рабочая логика программы выполняется за небольшое конечное число тактов процессора.

Решения на различных языках программирования

На C

#include <stdio.h>

void main()
{
    int a, b;

    scanf("%d%d", &a, &b);
    printf("%d\n", a + b);
}

На Pascal

program aplusb;
var a, b : longint;
begin
    Read(a, b);
    WriteLn(a + b);
end.

На Java

import java.util.Scanner;

public class AplusB {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int a = scanner.nextInt();
		int b = scanner.nextInt();
		System.out.println(a + b);
	}

}

На С++

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

На C#

using System;

class Program
{
    static void Main()
    {
        string[] input = Console.ReadLine().Split(' ');
        Console.WriteLine(int.Parse(input[0]) + int.Parse(input[1]));
    }
}

На Python 3

print(sum(map(int, input().split())))

На Perl

($a, $b) = split /\s/, <>; 
print $a + $b . "\n";

На Common Lisp

(let ((a (read))
      (b (read))
  (format t "~a~%" (+ a b)))

На Ruby

puts gets.split.map(&:to_i).inject(:+)

На Haskell

main = print . sum . map read . words =<< getLine

На AWK

{print $1+$2}

Задачи A+B на различных сайтах

Напишите отзыв о статье "A+B"

Примечания

  1. [acmp.ru/article.asp?id_text=118 Введение в олимпиадное программирование] в Школе программиста

Отрывок, характеризующий A+B

Он поехал почти по передней линии. Несколько всадников скакали по направлению к нему. Это были наши лейб уланы, которые расстроенными рядами возвращались из атаки. Ростов миновал их, заметил невольно одного из них в крови и поскакал дальше.
«Мне до этого дела нет!» подумал он. Не успел он проехать нескольких сот шагов после этого, как влево от него, наперерез ему, показалась на всем протяжении поля огромная масса кавалеристов на вороных лошадях, в белых блестящих мундирах, которые рысью шли прямо на него. Ростов пустил лошадь во весь скок, для того чтоб уехать с дороги от этих кавалеристов, и он бы уехал от них, ежели бы они шли всё тем же аллюром, но они всё прибавляли хода, так что некоторые лошади уже скакали. Ростову всё слышнее и слышнее становился их топот и бряцание их оружия и виднее становились их лошади, фигуры и даже лица. Это были наши кавалергарды, шедшие в атаку на французскую кавалерию, подвигавшуюся им навстречу.
Кавалергарды скакали, но еще удерживая лошадей. Ростов уже видел их лица и услышал команду: «марш, марш!» произнесенную офицером, выпустившим во весь мах свою кровную лошадь. Ростов, опасаясь быть раздавленным или завлеченным в атаку на французов, скакал вдоль фронта, что было мочи у его лошади, и всё таки не успел миновать их.
Крайний кавалергард, огромный ростом рябой мужчина, злобно нахмурился, увидав перед собой Ростова, с которым он неминуемо должен был столкнуться. Этот кавалергард непременно сбил бы с ног Ростова с его Бедуином (Ростов сам себе казался таким маленьким и слабеньким в сравнении с этими громадными людьми и лошадьми), ежели бы он не догадался взмахнуть нагайкой в глаза кавалергардовой лошади. Вороная, тяжелая, пятивершковая лошадь шарахнулась, приложив уши; но рябой кавалергард всадил ей с размаху в бока огромные шпоры, и лошадь, взмахнув хвостом и вытянув шею, понеслась еще быстрее. Едва кавалергарды миновали Ростова, как он услыхал их крик: «Ура!» и оглянувшись увидал, что передние ряды их смешивались с чужими, вероятно французскими, кавалеристами в красных эполетах. Дальше нельзя было ничего видеть, потому что тотчас же после этого откуда то стали стрелять пушки, и всё застлалось дымом.
В ту минуту как кавалергарды, миновав его, скрылись в дыму, Ростов колебался, скакать ли ему за ними или ехать туда, куда ему нужно было. Это была та блестящая атака кавалергардов, которой удивлялись сами французы. Ростову страшно было слышать потом, что из всей этой массы огромных красавцев людей, из всех этих блестящих, на тысячных лошадях, богачей юношей, офицеров и юнкеров, проскакавших мимо его, после атаки осталось только осьмнадцать человек.
«Что мне завидовать, мое не уйдет, и я сейчас, может быть, увижу государя!» подумал Ростов и поскакал дальше.
Поровнявшись с гвардейской пехотой, он заметил, что чрез нее и около нее летали ядры, не столько потому, что он слышал звук ядер, сколько потому, что на лицах солдат он увидал беспокойство и на лицах офицеров – неестественную, воинственную торжественность.
Проезжая позади одной из линий пехотных гвардейских полков, он услыхал голос, назвавший его по имени.
– Ростов!
– Что? – откликнулся он, не узнавая Бориса.
– Каково? в первую линию попали! Наш полк в атаку ходил! – сказал Борис, улыбаясь той счастливой улыбкой, которая бывает у молодых людей, в первый раз побывавших в огне.
Ростов остановился.
– Вот как! – сказал он. – Ну что?
– Отбили! – оживленно сказал Борис, сделавшийся болтливым. – Ты можешь себе представить?
И Борис стал рассказывать, каким образом гвардия, ставши на место и увидав перед собой войска, приняла их за австрийцев и вдруг по ядрам, пущенным из этих войск, узнала, что она в первой линии, и неожиданно должна была вступить в дело. Ростов, не дослушав Бориса, тронул свою лошадь.
– Ты куда? – спросил Борис.
– К его величеству с поручением.
– Вот он! – сказал Борис, которому послышалось, что Ростову нужно было его высочество, вместо его величества.
И он указал ему на великого князя, который в ста шагах от них, в каске и в кавалергардском колете, с своими поднятыми плечами и нахмуренными бровями, что то кричал австрийскому белому и бледному офицеру.
– Да ведь это великий князь, а мне к главнокомандующему или к государю, – сказал Ростов и тронул было лошадь.