public static void Main()
Func<char, float[], char, float[], string> f =
(s,n,e,w)=>{float a=180-(w[0]+w[1]/60+w[2]/3600),b=a%1*60;return(s>82?"N":"S")+$" {string.Join(" ",n)} {(e<70?'W':'E')} {a} {b} "+b%1*60;};
Func<char, int, int, int, char, int, int, int, string> f3 =
(s,n,m,p,e,w,x,y)=>{var z=new TimeSpan(180,0,0)-new TimeSpan(w,x,y);return(s>82?"N":"S")+$" {n} {m} {p} {(e<70?'W':'E')} {z.TotalHours} {z:%m\\ s}";};
Console.WriteLine(f ('S',new[]{43f,9,9},'E',new[]{0f,0,5}));
Console.WriteLine(f3 ('S',43,9,9,'E',0,0,5));
Console.WriteLine(A ("S 43 9 9 E 0 0 5"));
static float[]t(string[]a,int n)=>a.Skip(n).Take(3).Select(float.Parse).ToArray();
static string A(string i){
var s=i.Split(' ');var w=t(s,5);float a=180-(w[0]+w[1]/60+w[2]/3600),b=a%1*60;
return(s[0][0]>82?"N":"S")+$" {string.Join(" ",t(s,1))} {(s[4][0]<70?'W':'E')} {a} {b} "+b%1*60;}