mirror of
https://github.com/MADTeacher/go_basics.git
synced 2025-11-23 21:34:47 +02:00
74 lines
1.6 KiB
Go
74 lines
1.6 KiB
Go
package main
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"os"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
func main() {
|
|
scanner := bufio.NewScanner(os.Stdin)
|
|
var keys []int
|
|
var values []string
|
|
|
|
// Чтение ключей
|
|
if !scanner.Scan() { // если произошла ошибка
|
|
return // завершаем выполнение программы
|
|
}
|
|
keyParts := strings.Fields(scanner.Text())
|
|
// преобразование в целочисленный срез
|
|
for _, part := range keyParts {
|
|
num, err := strconv.Atoi(part)
|
|
if err != nil {
|
|
fmt.Println("Ошибка в ключах:", part)
|
|
return
|
|
}
|
|
keys = append(keys, num)
|
|
}
|
|
|
|
// Чтение значений
|
|
if !scanner.Scan() {
|
|
return
|
|
}
|
|
values = strings.Fields(scanner.Text())
|
|
|
|
// Проверка на то, что количество ключей и значений совпадает
|
|
if len(keys) != len(values) {
|
|
fmt.Println("Количество ключей и значений не совпадает")
|
|
return
|
|
}
|
|
|
|
// Чтение числа A
|
|
if !scanner.Scan() {
|
|
return
|
|
}
|
|
a, err := strconv.Atoi(scanner.Text())
|
|
if err != nil || a == 0 {
|
|
fmt.Println("Некорректное число A")
|
|
return
|
|
}
|
|
|
|
// Создание и заполнение таблицы
|
|
data := make(map[int]string)
|
|
for i := range keys {
|
|
data[keys[i]] = values[i]
|
|
}
|
|
|
|
// Поиск ключей для удаления
|
|
var toDelete []int
|
|
for k := range data {
|
|
if k%a == 0 {
|
|
toDelete = append(toDelete, k)
|
|
}
|
|
}
|
|
|
|
// Удаление элементов
|
|
for _, k := range toDelete {
|
|
delete(data, k)
|
|
}
|
|
|
|
fmt.Println(data)
|
|
}
|