ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила

Как писать решения на Go

Программы на Go компилируются на сервере с помощью Go 1.3.1. Компилятор запускается со следующими опциями:

go build %1

Вы можете скачать компилятор и прочитать онлайн-документацию на этой странице.

Пример решения задачи

Пример решения задачи 1000. A + B problem на Go:

package main
import "fmt"

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

Пример решения задачи 1001. Обратный корень на Go:

package main
import "fmt"
import "math"

var a [262144]int64

func main() {
   n := 0
   for {
      var x int64
      k, _ := fmt.Scan(&x)
      if k != 1 {
         break
      }
      a[n] = x
      n++
   }
   for n > 0 {
      n--
      fmt.Printf("%.4f\n", math.Sqrt(float64(a[n])))
   }
}

Более эффективный вариант решения той же задачи:

package main
import "os"
import "fmt"
import "math"
import "bufio"
import "strings"
import "strconv"

func main() {
   in := bufio.NewReader(os.Stdin)
   out := bufio.NewWriter(os.Stdout)
   text, _ := in.ReadString(0)
   a := strings.Fields(text)
   for i := len(a) - 1; i >= 0; i-- {
      f, _ := strconv.ParseFloat(a[i], 64)
      fmt.Fprintf(out, "%.4f\n", math.Sqrt(f))
   }
   out.Flush()
}