Contest.samsu.ru :: соревнования по программированию
Русская версия || English version
Login:
Password:
Забыли пароль?
 пример поиска: Вася Пупкин
 

Помощь

Примеры решения задачи A+B.

C, C++

#include <stdio.h>
#include <stdlib.h>
int main()
{
      FILE *in = freopen("input.txt", "r", stdin);
      FILE *out = freopen("output.txt", "w", stdout);
      int a, b;
      scanf("%d%d", &a, &b);
      printf("%d", a + b);
      fclose(in);
      fclose(out);
      return 0;
}

Free Pascal

var a,b:integer;
begin
  readln(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);
    }
}

Mono C#

using System;

public class Sum
{
    private static void Main()
    {
        System.IO.StreamReader file =  new System.IO.StreamReader(@"input.txt");
        string[] tokens = file.ReadLine().Split(' ');
        System.IO.StreamWriter ofile =  new System.IO.StreamWriter(@"output.txt");
        ofile.WriteLine(int.Parse(tokens[0]) + int.Parse(tokens[1]));
        ofile.Close();
    }
}

Mono Visual Basic

Imports System
Imports System.IO

Class HelloWorld
        Shared Sub Main
                Dim file as StreamReader = New StreamReader("input.txt")
                Dim line as String = file.ReadLine()
                Dim A as String = line.Split(" ")(0)
                Dim B as String = line.Split(" ")(1)
                Dim ofile as StreamWriter =  New StreamWriter("output.txt")
                ofile.WriteLine(CInt(A) + CInt(B))
                ofile.Close()
        End Sub
End Class

Perl

open IN, '<input.txt';
my ($a, $b) = split '\ ', <IN>;
close IN;
open OUT, '>output.txt';
print OUT $a+$b;
close OUT;

Python

infile = "input.txt"
outfile = "output.txt"
FIN = open(infile)
FOUT = open(outfile, "w")

a, b = map(int,FIN.readline().split())
FOUT.write(str(a + b))

FIN.close()
FOUT.close()

Ruby

#!/usr/bin/ruby

file = File.new("input.txt", "r")
fout = File.new("output.txt","w")
fout.puts file.gets.split.map(&:to_i).inject(:+)
file.close
fout.close

Haskell

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

GNU Octave

dlmwrite("output.txt",sum(dlmread("input.txt"," ")));

Go

package main
import "fmt"

func main() {
   var a, b int
   fmt.Scan(&a)
   fmt.Scan(&b)
   fmt.Println(a + b)
}

NASM

section .data
    buffer db      "hello, world hello hello"
 
section .text
    global _start
_start:
    mov     rax, 0 ; sys_read
    mov     rdi, 0; fd = 0 stdin
    mov     rsi, buffer
    mov     rdx, 20
    syscall

    mov     rsi, buffer ; rsi = ptr to next char
    mov     rbx, rax ; rbx bytes left
    mov     rax, 0 ; rax current number
op1:
    xor     rcx, rcx ; current digit
    mov     cl, [rsi]
    inc     rsi
    sub     cl, 48; 
    jb      goop2  ; not digit
    add     rax, rax ; multiply rax by 2
    mov     rdi, rax ; then by 5, 10 total
    add     rax, rax
    add     rax, rax
    add     rax, rdi
    add     rax, rcx ; add next digit
    sub     rbx, 1
    jz res
    jmp op1
goop2:
    sub     rbx, 1
    mov rdx, rax
    mov rax, 0
op2:
    xor     rcx, rcx ; current digit
    mov     cl, [rsi]
    inc     rsi
    sub     cl, 48; 
    jb      res  ; not digit
    add     rax, rax ; multiply rax by 2
    mov     rdi, rax ; then by 5, 10 total
    add     rax, rax
    add     rax, rax
    add     rax, rdi
    add     rax, rcx ; add next digit
    sub     rbx, 1
    jz res
    jmp op2
res:
    add rax, rdx

    mov rdi, buffer + 20
    mov rcx, 10
    xor rbx,rbx
todec:
    xor rdx ,rdx;
    div rcx
    add rdx, 48
    dec rdi
    inc rbx
    mov [rdi], dl
    cmp rax, 0
    jnz todec;

    mov rdx, rbx
    mov rsi, rdi;
    mov     rax, 1 ; sys_write
    mov     rdi, 1 ; fd = 1 stdout
    syscall
    mov    rax, 60
    mov    rdi, 0
    syscall

На нашем сайте вы можете организовывать свои соревнования, проводить тренировки и экзамены по программированию.

  1. Добавление своих задач
    Любой зарегистрированный посетитель сайта может пополнить архив задач своими задачами. Для этого нужно:
    • в разделе "Архив задач" добавить задачу. При добавлении задачи следует указать название и текст задачи (желательно на русском и английском языке), автора задачи, первоисточник (если задача уже использовалась на каком-либо соревновании); желательно также привести пример решения (на языках Pascal, C, Perl). По умолчанию при проверке решений задачи используется побайтовое сравнение output.txt с примером; если ответ не еднственный, для задачи можно добавить процедуру проверки решения, на языке Perl.
    • Только что добавленная задача появится в разделе задач, доступная только для того кто ее добавил.
    • Добавить тесты для задачи. Если для задачи был загружен "образец решения", то тесты автоматически проверяются на этом решении.
    • Включить галочки "Готово" и "Архив Задач", чтобы задача начала показываться в архиве задач. Либо, добавить задачу в одно из созданных Вами соревнований.
  2. Организация своих соревнований.
    Для организации своих соревнований, добавьте на сайт свои задачи и создайте новое соревнование в разделе "Соревнования".