diff --git a/P004-Median-Two-Sorted-Arrays/P004-Median-Two-Sorted-Arrays.sln b/P004-Median-Two-Sorted-Arrays/P004-Median-Two-Sorted-Arrays.sln
new file mode 100644
index 0000000..820b3fe
--- /dev/null
+++ b/P004-Median-Two-Sorted-Arrays/P004-Median-Two-Sorted-Arrays.sln
@@ -0,0 +1,22 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "P004-Median-Two-Sorted-Arrays", "P004-Median-Two-Sorted-Arrays\P004-Median-Two-Sorted-Arrays.csproj", "{4914EB04-2D0F-4CB8-8861-A05787138CF1}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {4914EB04-2D0F-4CB8-8861-A05787138CF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4914EB04-2D0F-4CB8-8861-A05787138CF1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4914EB04-2D0F-4CB8-8861-A05787138CF1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4914EB04-2D0F-4CB8-8861-A05787138CF1}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/P004-Median-Two-Sorted-Arrays/P004-Median-Two-Sorted-Arrays/App.config b/P004-Median-Two-Sorted-Arrays/P004-Median-Two-Sorted-Arrays/App.config
new file mode 100644
index 0000000..88fa402
--- /dev/null
+++ b/P004-Median-Two-Sorted-Arrays/P004-Median-Two-Sorted-Arrays/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/P004-Median-Two-Sorted-Arrays/P004-Median-Two-Sorted-Arrays/P004-Median-Two-Sorted-Arrays.csproj b/P004-Median-Two-Sorted-Arrays/P004-Median-Two-Sorted-Arrays/P004-Median-Two-Sorted-Arrays.csproj
new file mode 100644
index 0000000..becdb7d
--- /dev/null
+++ b/P004-Median-Two-Sorted-Arrays/P004-Median-Two-Sorted-Arrays/P004-Median-Two-Sorted-Arrays.csproj
@@ -0,0 +1,61 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {4914EB04-2D0F-4CB8-8861-A05787138CF1}
+ Exe
+ Properties
+ P004_Median_Two_Sorted_Arrays
+ P004-Median-Two-Sorted-Arrays
+ v4.5.2
+ 512
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/P004-Median-Two-Sorted-Arrays/P004-Median-Two-Sorted-Arrays/Program.cs b/P004-Median-Two-Sorted-Arrays/P004-Median-Two-Sorted-Arrays/Program.cs
new file mode 100644
index 0000000..74583af
--- /dev/null
+++ b/P004-Median-Two-Sorted-Arrays/P004-Median-Two-Sorted-Arrays/Program.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace P004_Median_Two_Sorted_Arrays
+{
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ var solution = new Solution();
+
+ Console.WriteLine(solution.FindMedianSortedArrays(new int[] { 1, 3 }, new int[] { 2 })); // 2.0
+ Console.WriteLine(solution.FindMedianSortedArrays(new int[] { 1, 2 }, new int[] { 3, 4 })); // 2.5
+ Console.WriteLine(solution.FindMedianSortedArrays(new int[] { 1, 2, 3 }, new int[] { 4, 5, 6 })); // 3.5
+ Console.WriteLine(solution.FindMedianSortedArrays(new int[] { 1 }, new int[] { 2 })); // 1.5
+ Console.WriteLine(solution.FindMedianSortedArrays(new int[] { }, new int[] { 1 })); // 1
+ Console.WriteLine(solution.FindMedianSortedArrays(new int[] { 1, 1 }, new int[] { 1, 2 })); // 1
+
+ Console.ReadLine();
+ }
+ }
+}
diff --git a/P004-Median-Two-Sorted-Arrays/P004-Median-Two-Sorted-Arrays/Properties/AssemblyInfo.cs b/P004-Median-Two-Sorted-Arrays/P004-Median-Two-Sorted-Arrays/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..afcab12
--- /dev/null
+++ b/P004-Median-Two-Sorted-Arrays/P004-Median-Two-Sorted-Arrays/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("P004-Median-Two-Sorted-Arrays")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Xeon Productions")]
+[assembly: AssemblyProduct("P004-Median-Two-Sorted-Arrays")]
+[assembly: AssemblyCopyright("Copyright © Xeon Productions 2017")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("4914eb04-2d0f-4cb8-8861-a05787138cf1")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/P004-Median-Two-Sorted-Arrays/P004-Median-Two-Sorted-Arrays/Solution.cs b/P004-Median-Two-Sorted-Arrays/P004-Median-Two-Sorted-Arrays/Solution.cs
new file mode 100644
index 0000000..a9b8970
--- /dev/null
+++ b/P004-Median-Two-Sorted-Arrays/P004-Median-Two-Sorted-Arrays/Solution.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace P004_Median_Two_Sorted_Arrays
+{
+ class Solution
+ {
+ /**
+ * 2080 / 2080 test cases passed.
+ * Status: Accepted
+ * Runtime: 239 ms
+ */
+ public double FindMedianSortedArrays(int[] nums1, int[] nums2)
+ {
+ int[] combined = nums1.Concat(nums2).OrderBy(i => i).ToArray();
+ return combined.Length % 2 == 0 ? (double)(combined[(combined.Length / 2) - 1] + combined[(combined.Length / 2)]) / 2 : combined[(int)combined.Length / 2];
+ }
+ }
+}