Submission #2402445


Source Code Expand

Module Module1

    Dim Deg, Dis, i, j, k, w As Integer
    Dim str1, flg, Dir, prt As String
    Dim a, d, r, p As Double
    Dim Pow, bfStr

    Sub Main()
        p = 4 * Math.Atan(1.0)
        
        bfStr = Split(Console.ReadLine)
        Deg = bfStr(0)
        Dis = bfStr(1)

        a = Math.Round(Dis / 60, 1, MidpointRounding.AwayFromZero)

        str1 = "0 0.2 1.5 3.3 5.4 7.9 10.7 13.8 17.1 20.7 24.4 28.4 32.6"
        Pow = Split(str1)

        w = 0
        For i = 0 To UBound(Pow)
            If a - Val(Pow(i)) > 0 Then
                w = i
            End If
        Next i

        d = Deg / 10
        
        flg = ""
        Dir = ""
        
        For i = 0 To 15
            r = i / 16 * 2 * p
            If Len(Dir) > 1 Then Dir = ""
            If i Mod 4 = 3 Then Dir = news2(Dir, r)
            Dir = news1(Dir, r)
            
'            Range("H5").Offset(i) = i
'            Range("I5").Offset(i) = i * 360 / 16 + 11.25
'            Range("J5").Offset(i, rp) = Dir
            
            If d < i * 360 / 16 + 11.25 Then
                Exit For
            End If
        Next
        
        If w = 0 Then
            Dir = "C"
        ElseIf i = 16 Then
            Dir = "N"
        End If
        
'        bfStr = Split("Dis: Dis/60: w:", " ")
'        For i = 0 To UBound(bfStr)
'            Range("B" & i + 18) = bfStr(i)
'        Next
'        Range("C18").Offset(, rp) = Dis
'        Range("C19").Offset(, rp) = a
'        Range("C20").Offset(, rp) = w
        
'        bfStr = Split("Deg: d: Dir:", " ")
'        For i = 0 To UBound(bfStr)
'            Range("I" & i + 1) = bfStr(i)
'        Next
'        Range("J1").Offset(, rp) = Deg
'        Range("J2").Offset(, rp) = d
'        Range("J3").Offset(, rp) = Dir
        
'        MsgBox Dir & Chr(13) & w + 1
        Console.WriteLine(Dir & " " & w)
        
    End Sub

    Function news1(Dir, r)
        Select Case Math.Cos(r)
        Case Is > 0.1
            Dir = Dir & "N"
        Case Is < -0.1
            Dir = Dir & "S"
        End Select
        
        Select Case Math.Sin(r)
        Case Is > 0.1
            Dir = Dir & "E"
        Case Is < -0.1
            Dir = Dir & "W"
        End Select
        
        news1 = Dir
    End Function
    
    Function news2(Dir, r)
        If Math.Cos(r) > 0 Then
            If Math.Cos(r) > Math.Sin(r) Then
                Dir = Dir + "N"
            Else
                Dir = Dir + "E"
            End If
        Else
            If Math.Cos(r) > Math.Sin(r) Then
                Dir = Dir + "W"
            Else
                Dir = Dir + "S"
            End If
        End If
        
        news2 = Dir
    End Function
End Module

Submission Info

Submission Time
Task C - 風力観測
User ToshiroYanagi
Language Visual Basic (Mono 4.0.1)
Score 100
Code Size 2828 Byte
Status AC
Exec Time 66 ms
Memory 22736 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 64 ms 20560 KB
00_sample_02.txt AC 63 ms 18640 KB
00_sample_03.txt AC 65 ms 20688 KB
00_sample_04.txt AC 65 ms 20688 KB
00_sample_05.txt AC 65 ms 20688 KB
00_sample_06.txt AC 65 ms 18640 KB
00_sample_07.txt AC 64 ms 20560 KB
00_sample_08.txt AC 65 ms 22608 KB
test_01.txt AC 65 ms 20688 KB
test_02.txt AC 65 ms 22736 KB
test_03.txt AC 64 ms 20688 KB
test_04.txt AC 65 ms 20688 KB
test_05.txt AC 65 ms 20688 KB
test_06.txt AC 64 ms 20560 KB
test_07.txt AC 65 ms 22736 KB
test_08.txt AC 65 ms 20688 KB
test_09.txt AC 65 ms 20688 KB
test_10.txt AC 66 ms 20688 KB
test_11.txt AC 65 ms 20688 KB
test_12.txt AC 64 ms 20688 KB
test_13.txt AC 65 ms 20688 KB
test_14.txt AC 66 ms 20688 KB
test_15.txt AC 65 ms 18640 KB
test_16.txt AC 65 ms 18640 KB
test_17.txt AC 65 ms 20688 KB
test_18.txt AC 65 ms 20688 KB
test_19.txt AC 65 ms 22608 KB
test_20.txt AC 65 ms 20688 KB
test_21.txt AC 65 ms 22608 KB
test_22.txt AC 65 ms 20560 KB
test_23.txt AC 65 ms 20560 KB
test_24.txt AC 65 ms 20560 KB
test_25.txt AC 64 ms 18640 KB
test_26.txt AC 63 ms 18512 KB
test_27.txt AC 65 ms 20688 KB
test_28.txt AC 65 ms 20688 KB
test_29.txt AC 64 ms 20688 KB
test_30.txt AC 65 ms 20560 KB
test_31.txt AC 65 ms 20560 KB
test_32.txt AC 65 ms 20688 KB
test_33.txt AC 66 ms 20688 KB
test_34.txt AC 66 ms 22736 KB
test_35.txt AC 66 ms 20688 KB
test_36.txt AC 65 ms 20560 KB
test_37.txt AC 64 ms 18640 KB
test_38.txt AC 65 ms 18512 KB
test_39.txt AC 66 ms 20688 KB
test_40.txt AC 66 ms 18640 KB
test_41.txt AC 65 ms 20688 KB
test_42.txt AC 65 ms 18640 KB
test_43.txt AC 64 ms 20688 KB
test_44.txt AC 64 ms 20688 KB
test_45.txt AC 65 ms 20560 KB
test_46.txt AC 65 ms 20560 KB
test_47.txt AC 66 ms 20560 KB
test_48.txt AC 64 ms 18640 KB
test_49.txt AC 65 ms 20560 KB
test_50.txt AC 65 ms 20688 KB
test_51.txt AC 65 ms 20688 KB
test_52.txt AC 65 ms 20688 KB
test_53.txt AC 65 ms 20688 KB
test_54.txt AC 65 ms 20688 KB
test_55.txt AC 64 ms 20688 KB
test_56.txt AC 65 ms 20688 KB
test_57.txt AC 65 ms 20560 KB
test_58.txt AC 65 ms 20688 KB