Submission #4567727


Source Code Expand

package main

import (
    "fmt"
    "bufio"
    "os"
    "strings"
    "strconv"
    "math"
)

func main() {
    var str string
    stdin := bufio.NewScanner(os.Stdin)

    if stdin.Scan() {
        str = stdin.Text()
        arr := strings.Split(str, " ")
        param1, _ := strconv.Atoi(arr[0])
        param2, _ := strconv.Atoi(arr[1])
        Deg := float64(param1) / 10
        Dis := Round(float64(param2) / 60, 1)

        W   := get_wind_power(Dis)
        var Dir string

        if W != 0 {
            Dir = get_wind_direction(Deg)
        } else {
            Dir = "C"
        }

        fmt.Println(Dir + " " + strconv.Itoa(W))
    }
}

func Round(num, places float64) float64 {
    shift := math.Pow(10, places)
    return roundInt(num*shift) / shift
}

func roundInt(num float64) float64 {
    t := math.Trunc(num)

    if math.Abs(num-t) >= 0.5 {
        return t + math.Copysign(1, num)
    }

    return t
}

func get_wind_power(num float64) int{
    if num >= 0 && num <= 0.2 {
        return 0
    } else if num >= 0.3 && num <= 1.5 {
        return 1
    } else if num >= 1.6 && num <= 3.3 {
        return 2
    } else if num >= 3.4 && num <= 5.4 {
        return 3
    } else if num >= 5.5 && num <= 7.9 {
        return 4
    } else if num >= 8.0 && num <= 10.7 {
        return 5
    } else if num >= 10.8 && num <= 13.8 {
        return 6
    } else if num >= 13.9 && num <= 17.1 {
        return 7
    } else if num >= 17.2 && num <= 20.7 {
        return 8
    } else if num >= 20.8 && num <= 24.4 {
        return 9
    } else if num >= 24.5 && num <= 28.4 {
        return 10
    } else if num >= 28.5 && num <= 32.6 {
        return 11
    } else {
        return 12
    }
}

func get_wind_direction(num float64) string {
    if num >= 11.25 && num < 33.75 {
        return "NNE"
    } else if num >= 33.75 && num < 56.25 {
        return "NE"
    } else if num >= 56.25 && num < 78.75 {
        return "ENE"
    } else if num >= 78.75 && num < 101.25 {
        return "E"
    } else if num >= 101.25 && num < 123.75 {
        return "ESE"
    } else if num >= 123.75 && num < 146.25 {
        return "SE"
    } else if num >= 146.25 && num < 168.75 {
        return "SSE"
    } else if num >= 168.75 && num < 191.25 {
        return "S"
    } else if num >= 191.25 && num < 213.75 {
        return "SSW"
    } else if num >= 213.75 && num < 236.25 {
        return "SW"
    } else if num >= 236.25 && num < 258.75 {
        return "WSW"
    } else if num >= 258.75 && num < 281.25 {
        return "W"
    } else if num >= 281.25 && num < 303.75 {
        return "WNW"
    } else if num >= 303.75 && num < 326.25 {
        return "NW"
    } else if num >= 326.25 && num < 348.75 {
        return "NNW"
    } else {
        return "N"
    }
}

Submission Info

Submission Time
Task C - 風力観測
User uratch
Language Go (1.6)
Score 100
Code Size 2892 Byte
Status AC
Exec Time 1 ms
Memory 640 KB

Judge Result

Set Name all
Score / Max Score 100 / 100
Status
AC × 66
Set Name Test Cases
all 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt, 00_sample_05.txt, 00_sample_06.txt, 00_sample_07.txt, 00_sample_08.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt, test_49.txt, test_50.txt, test_51.txt, test_52.txt, test_53.txt, test_54.txt, test_55.txt, test_56.txt, test_57.txt, test_58.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 1 ms 640 KB
00_sample_02.txt AC 1 ms 640 KB
00_sample_03.txt AC 1 ms 640 KB
00_sample_04.txt AC 1 ms 640 KB
00_sample_05.txt AC 1 ms 640 KB
00_sample_06.txt AC 1 ms 640 KB
00_sample_07.txt AC 1 ms 640 KB
00_sample_08.txt AC 1 ms 640 KB
test_01.txt AC 1 ms 640 KB
test_02.txt AC 1 ms 640 KB
test_03.txt AC 1 ms 640 KB
test_04.txt AC 1 ms 640 KB
test_05.txt AC 1 ms 640 KB
test_06.txt AC 1 ms 640 KB
test_07.txt AC 1 ms 640 KB
test_08.txt AC 1 ms 640 KB
test_09.txt AC 1 ms 640 KB
test_10.txt AC 1 ms 640 KB
test_11.txt AC 1 ms 640 KB
test_12.txt AC 1 ms 640 KB
test_13.txt AC 1 ms 640 KB
test_14.txt AC 1 ms 640 KB
test_15.txt AC 1 ms 640 KB
test_16.txt AC 1 ms 640 KB
test_17.txt AC 1 ms 640 KB
test_18.txt AC 1 ms 640 KB
test_19.txt AC 1 ms 640 KB
test_20.txt AC 1 ms 640 KB
test_21.txt AC 1 ms 640 KB
test_22.txt AC 1 ms 640 KB
test_23.txt AC 1 ms 640 KB
test_24.txt AC 1 ms 640 KB
test_25.txt AC 1 ms 640 KB
test_26.txt AC 1 ms 640 KB
test_27.txt AC 1 ms 640 KB
test_28.txt AC 1 ms 640 KB
test_29.txt AC 1 ms 640 KB
test_30.txt AC 1 ms 640 KB
test_31.txt AC 1 ms 640 KB
test_32.txt AC 1 ms 640 KB
test_33.txt AC 1 ms 640 KB
test_34.txt AC 1 ms 640 KB
test_35.txt AC 1 ms 640 KB
test_36.txt AC 1 ms 640 KB
test_37.txt AC 1 ms 640 KB
test_38.txt AC 1 ms 640 KB
test_39.txt AC 1 ms 640 KB
test_40.txt AC 1 ms 640 KB
test_41.txt AC 1 ms 640 KB
test_42.txt AC 1 ms 640 KB
test_43.txt AC 1 ms 640 KB
test_44.txt AC 1 ms 640 KB
test_45.txt AC 1 ms 640 KB
test_46.txt AC 1 ms 640 KB
test_47.txt AC 1 ms 640 KB
test_48.txt AC 1 ms 640 KB
test_49.txt AC 1 ms 640 KB
test_50.txt AC 1 ms 640 KB
test_51.txt AC 1 ms 640 KB
test_52.txt AC 1 ms 640 KB
test_53.txt AC 1 ms 640 KB
test_54.txt AC 1 ms 640 KB
test_55.txt AC 1 ms 640 KB
test_56.txt AC 1 ms 640 KB
test_57.txt AC 1 ms 640 KB
test_58.txt AC 1 ms 640 KB