bastien.monsarrat 6 年之前
父节点
当前提交
44c8d54b51
共有 8 个文件被更改,包括 696 次插入4 次删除
  1. 16 4
      Adv2016.sln
  2. 9 0
      D06.1/D06.1.csproj
  3. 50 0
      D06.1/Program.cs
  4. 8 0
      D06.1/Properties/launchSettings.json
  5. 546 0
      D06.1/input.txt
  6. 9 0
      D06.2/D06.2.csproj
  7. 50 0
      D06.2/Program.cs
  8. 8 0
      D06.2/Properties/launchSettings.json

+ 16 - 4
Adv2016.sln

@@ -15,13 +15,17 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "D03.1", "D03.1\D03.1.csproj
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "D03.2", "D03.2\D03.2.csproj", "{66934053-8668-499D-A09D-9F52046E8738}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "D04.1", "D04.1\D04.1.csproj", "{09061CCB-A3BE-47A7-92EA-A5715C8642CC}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "D04.1", "D04.1\D04.1.csproj", "{09061CCB-A3BE-47A7-92EA-A5715C8642CC}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "D04.2", "D04.2\D04.2.csproj", "{453AB88F-605E-40A8-B73F-1D1EE6BA852D}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "D04.2", "D04.2\D04.2.csproj", "{453AB88F-605E-40A8-B73F-1D1EE6BA852D}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "D05.1", "D05.1\D05.1.csproj", "{54C11F9D-9DCB-4743-BED9-11CAF123837D}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "D05.1", "D05.1\D05.1.csproj", "{54C11F9D-9DCB-4743-BED9-11CAF123837D}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "D05.2", "D05.2\D05.2.csproj", "{A49B7DDA-4DC5-4392-B4E7-1AF59E4BEB90}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "D05.2", "D05.2\D05.2.csproj", "{A49B7DDA-4DC5-4392-B4E7-1AF59E4BEB90}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "D06.1", "D06.1\D06.1.csproj", "{90A745D8-7273-45C4-B005-E7AC4E7578F6}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "D06.2", "D06.2\D06.2.csproj", "{AC2C9A9B-FAFE-49A9-B838-CDEFD3598853}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -69,6 +73,14 @@ Global
 		{A49B7DDA-4DC5-4392-B4E7-1AF59E4BEB90}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{A49B7DDA-4DC5-4392-B4E7-1AF59E4BEB90}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{A49B7DDA-4DC5-4392-B4E7-1AF59E4BEB90}.Release|Any CPU.Build.0 = Release|Any CPU
+		{90A745D8-7273-45C4-B005-E7AC4E7578F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{90A745D8-7273-45C4-B005-E7AC4E7578F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{90A745D8-7273-45C4-B005-E7AC4E7578F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{90A745D8-7273-45C4-B005-E7AC4E7578F6}.Release|Any CPU.Build.0 = Release|Any CPU
+		{AC2C9A9B-FAFE-49A9-B838-CDEFD3598853}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{AC2C9A9B-FAFE-49A9-B838-CDEFD3598853}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{AC2C9A9B-FAFE-49A9-B838-CDEFD3598853}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{AC2C9A9B-FAFE-49A9-B838-CDEFD3598853}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

+ 9 - 0
D06.1/D06.1.csproj

@@ -0,0 +1,9 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp2.1</TargetFramework>
+    <RootNamespace>D6._1</RootNamespace>
+  </PropertyGroup>
+
+</Project>

+ 50 - 0
D06.1/Program.cs

@@ -0,0 +1,50 @@
+using System;
+using System.IO;
+
+namespace D6._1
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            if (args.Length < 1) throw new ArgumentException();
+            if (File.Exists(args[0]) == false) throw new FileNotFoundException();
+
+            var freq = new int[8][];
+
+            using (var file = File.OpenText(args[0]))
+            {
+                while (true)
+                {
+                    var line = file.ReadLine();
+                    if (line == null) break;
+
+                    for (var i = 0; i < 8; i++)
+                    {
+                        if (freq[i] == null) freq[i] = new int[26];
+                        freq[i][line[i] - 'a']++;
+                    }
+                }
+            }
+
+            var password = new char[8];
+
+            for (var i = 0; i < 8; i++)
+            {
+                int max = 0, maxi = 0;
+                for (var ci = 0; ci < 26; ci++)
+                {
+                    if (freq[i][ci] > max)
+                    {
+                        maxi = ci;
+                        max = freq[i][ci];
+                    }
+                }
+
+                password[i] = (char)(maxi + 'a');
+            }
+
+            Console.WriteLine($"Password is : {string.Join("", password)}");
+        }
+    }
+}

+ 8 - 0
D06.1/Properties/launchSettings.json

@@ -0,0 +1,8 @@
+{
+  "profiles": {
+    "D06.1": {
+      "commandName": "Project",
+      "commandLineArgs": "\"..\\..\\..\\..\\D06.1\\input.txt\""
+    }
+  }
+}

+ 546 - 0
D06.1/input.txt

@@ -0,0 +1,546 @@
+nokeeods
+zpmwxpca
+jwyhcgzu
+stsjmxlq
+tehbxqaz
+aibnhjna
+hglamqmh
+rdtbnzgs
+iswfycts
+bfqvddev
+bobrpwzu
+ttaijpwn
+zsqbxduy
+nfxtssou
+zakahunf
+cucgtuak
+ccxstpbr
+idvlghrf
+ziiyfizd
+ilnqkjhr
+pspgmvbx
+krepxvkh
+txnxmsct
+eyioumyz
+zjfigmii
+mjgvdqpx
+lzxbjlfz
+ytwaguep
+wvsifimw
+iravmwye
+ulndcvsp
+nhvpycug
+sysylvjj
+lpbispqw
+eatsmkkl
+zuzogruk
+dutwoeei
+uuogwtao
+xlgydojn
+byijebmd
+lwaxnwgl
+yarkhhou
+legvqzwd
+aowbehqa
+mgcnqrao
+dzvefekx
+nxwtrmsz
+muqogaqb
+avjyxjuv
+sddxjazw
+pliriuin
+kvbfyxne
+fugdyleg
+fnxfqrus
+qigvixzx
+dynhnjfg
+kkfacelo
+uyutelaf
+oteuhuho
+howayjbp
+nvjimapz
+pgruehty
+bznxnagk
+ackuwwhy
+rukhmyzm
+xrbfzppf
+bmyowesb
+eoeevbqq
+otqcpxyk
+ajebqtop
+rvowtdym
+tzelxzgg
+ozbarteu
+qwfmncdd
+wjilseki
+oexylqve
+lbtgnuse
+exjuxvtj
+ghorhwwe
+fqntodqj
+faajlwjc
+sdaklrsc
+vodzbmno
+fihrwktu
+bzttvcpf
+fxxqrnut
+plybfmbo
+utvvstkq
+fiszzikb
+tdubqjwe
+eaqqhwks
+psrzodsk
+yenxefmy
+xxxnooon
+weahqixk
+ccrqcwhw
+ykecamuc
+bcvtssvy
+hiatsyta
+xtgwhark
+tnortovc
+kjtmoree
+fhrlfwbv
+gqobfrvu
+sxilzikm
+xqahtoem
+xxbtbbqp
+pmipprgs
+dhvhhfzv
+ofiglbzk
+vunznoab
+qkevvjrw
+prjestmx
+nngivkxb
+pvbodgyq
+qqllzygh
+xmtkadjw
+ktbulfqx
+dfndvlts
+vcxfyxdt
+vabmpvrh
+kykgsrwg
+rngsmulq
+yewnysbr
+edguzqvd
+ehmdsxdg
+qgqtbynt
+mwyydesw
+jgcnhyot
+svkzvqsi
+tfsdkugy
+hohcojbu
+nvduapdp
+bmtckivn
+lkxwtsjv
+sjyvxhnn
+ldhzxsks
+sfvhpjui
+uncrecum
+xcatthkm
+qqzhzbdf
+bsdobwkh
+bqdprzha
+yhszdmef
+xkwfdmuk
+mgczauqw
+esuqatfx
+nsmwzkxz
+pwvkgdlv
+vocqoqga
+oqqtglfr
+kxuhlbwx
+ljelrpbb
+vjlfxfaz
+xihzikeh
+lepiyydq
+zbbcletk
+cngmhyjr
+ydvkjzko
+imfnuytd
+fccjiacp
+ewevykge
+ynoxvmig
+fzdlexys
+oypcsecg
+rbpvrcvv
+eymcbkxy
+mikyujcu
+wzgxtsql
+vuojkhgq
+dcflnifn
+xnheoecs
+qqqowmea
+ascnutyg
+nichzgxy
+fszhhwlc
+fzjnowcu
+wmhisugz
+getnucis
+gnsdlkjd
+tdtdqgnl
+galitfun
+ikqeqxhl
+cvywqjlk
+obkkpwxy
+kwyubstt
+eljadxxe
+lwpzhfcu
+scmkmyqj
+txzqjvpv
+abeijkpo
+itkxnaym
+drvekvkd
+rqysrauf
+akzsohed
+xjneqesc
+zzhpxfnb
+edqfifgh
+cwpszcnf
+xhhopkua
+jcmltvqr
+oikwrydj
+kewqixur
+mgmvolqv
+qplmgtkf
+prqwcpml
+chgizgja
+fyqcempn
+tfbmvrbh
+rlbmwdce
+woymburn
+pezqonho
+fznxkomh
+mtmyndpm
+xvndjjwo
+vjwqeqjv
+sxfeahzl
+zahyvrlw
+amvfzlbd
+cofaaqeo
+hraodbvu
+yqddvddr
+ywcbrqxs
+yifoffga
+ryakycka
+aldbnpkc
+gzbnjgwx
+dbmuryha
+kbcfsdcf
+tkauzbni
+cpsronsl
+mptyurop
+iapeipuh
+glkmcrhy
+zjdriwwk
+txdacbyg
+jpggncvg
+nekvihae
+rhlowuya
+ghpownth
+itixvfmb
+zdfaycfa
+qbetfgnp
+zhvgaaue
+gmkcuxiy
+kvfwuqmj
+dfyjiibh
+uldjqdik
+vayodecd
+fcrptbsl
+bpkrxnpg
+nxceomni
+uqdjgsnk
+emcqcjvx
+ctsebwhz
+igzkebwr
+jlmnkzro
+nflruvsc
+dydkyrfm
+mwhfwdyo
+afnrppxc
+ptgculvd
+wresmjow
+umjxnvgc
+kdlcxidd
+mspmqgnv
+glujmbfs
+dxjqbxhn
+jbwibcuc
+jtufbtyh
+zfixtoec
+awtnaswy
+viedwkop
+quyuangc
+hgdhkgow
+gvisxrle
+avxehrsn
+nuzxbxmn
+xdjxxpjx
+cwxhsqpz
+jsptklax
+hrspgkdr
+rghmfkpr
+kymmmcab
+bbzcujvv
+jyyqdcbn
+kvjpazrt
+wnwfiyjl
+jvwrbnbi
+jqmjpwnd
+fopeyutz
+mfeppqte
+azcjbavi
+uteltaxf
+ensdtizg
+afupwjas
+jsvreklb
+xgwcsylf
+bzlswqps
+kekyroql
+wqdjwfir
+wbuayqxv
+emqnbrqb
+cnzqauow
+qsmtfbdf
+aochxott
+nwfwkeae
+ijdcshdi
+dpwsudgr
+oaamnnea
+mluzhvlf
+fqlpiggq
+cytmczdp
+unpiijjy
+uuudrjkx
+ogwjvsjq
+jrfhuqfc
+zsqluoiv
+selafsom
+gdkunobm
+mzjxifaq
+jkeggahz
+hxancvri
+qaypytsd
+oxgydtjv
+xntwktcs
+zijgqmzj
+myqvumje
+pbvbpqjq
+virtaxeo
+glvxjssx
+romkjdyz
+drwzndbv
+rnftqwrn
+bovwonoc
+wpvgidzh
+vujhqizk
+ewrzepvh
+ahidqlyj
+ombljgna
+laqxgoor
+trsztwtj
+okxxzfrs
+ydsyalyb
+mipyxubw
+uhszecbe
+tkhrlpin
+ynkqgjuf
+usxvkzot
+ilxgponl
+juwgpslt
+lupstgdz
+liocdvrq
+cljsobdt
+wrbmyvsy
+sfnkwozr
+weoseowu
+hftgfbvg
+gqpixaeq
+javqkxck
+quxbqioa
+msjqizqy
+pctywkzv
+wwuesfwk
+dmzmjfmh
+lrolrdqk
+ikhfctot
+yocwwoqf
+vaylqepx
+vgagdnau
+hvmjlktg
+pcirvhlw
+wblmhuiy
+btyzukto
+gxapfhwr
+mikkqymd
+oturyvbd
+jnhonnrl
+ljbsbyxn
+koktfhfo
+cgubhrfo
+eycdxbmx
+cfgfmnvj
+phzbvepd
+pvfoudpl
+rljpzvrx
+kmrzklix
+zkixilas
+hkyylnmf
+gfrijkqm
+huzlcysy
+zsnsackz
+akobdtez
+rozkivil
+mzgqzylh
+llyufhvi
+hnboetec
+lwjvfbjq
+ebxuggjb
+erqyjixp
+xrorpiax
+fplrcbir
+pjgaeiyp
+nwandnpl
+bbbseuhw
+xvatmaxr
+qyjokwri
+dybwsmtp
+vqrrpazk
+zntcuass
+snldpzro
+oglioppo
+uizpwpbp
+imvdquvt
+qsbcooii
+oaifcspj
+rtogzpct
+koxwtgoh
+wldfgvfv
+jcomclml
+rnhbrhgy
+rheslqiu
+icieclfb
+spzmzffo
+ywfolqsv
+ggpkeiaf
+ycuosrcz
+bjhyzalp
+gvlcgmsu
+urtfsirp
+aczwgpvf
+syizzpfm
+jeytiogw
+baiqzhng
+xfoshrln
+jalajywc
+fbqgnerq
+leswwkie
+txmkynaa
+tozexgmk
+tjvdybfs
+nguvfhsr
+vzulliwb
+ejxdnzzw
+rzpjbaxz
+yhihatyi
+cbtrpgtq
+hewhjlgj
+vecvstym
+qcrzjsli
+egaglwfe
+dpwjmfyn
+osxyhciy
+bvrlrnrg
+ifmjlgvb
+tcwiitbj
+dvxnlkqd
+hbmfpszg
+nymiayxn
+tlpuagil
+xxrzmint
+ukosvewb
+nfslvmua
+ztxjiohi
+syzucnhc
+lkhkmjeb
+irvawvji
+ohubcctp
+yhsmhiwb
+uirlkpdc
+umthcmcq
+dwnekfwb
+sjhwuiwr
+lhrumxet
+hwodycjm
+huokhnxi
+ixgnnedb
+fuquvhit
+ihopkgmj
+qkshanae
+brcadzaw
+gteigmzt
+igsptydi
+hdadcetj
+gpoylltw
+kmjgylrl
+vcuvwmju
+apfjrshd
+tfdtgdht
+lgifzoct
+hrfspexu
+pkujmfpy
+nqraesca
+ojlirtfu
+kjacrauy
+wmwuvplj
+qqjkraoh
+zbrgpbfm
+cmlpbslo
+yofcjzrj
+yzrvfgxi
+jelbozct
+uddcvkkk
+pdzymucm
+upuphein
+rccweles
+lgonahnv
+hjchxvgg
+vzhpjcvj
+bxfafcbm
+ndrnrxmr
+uxnwopde
+dmnnntog
+rleorqpc
+spirduaq
+qiyblahq
+fqqvqxop
+yppeabkq
+vsddqzwc
+wanqfzmw
+sppvdznl
+ispmbhkp
+rpzuvqcw
+sdtajnhp
+smsedlfu
+zhmewxfu
+kunslglz
+mkmqorqj
+qquztzdg
+ddepulmc
+pirabmzd
+cositrpq
+hegtpypm
+tpexgfqj
+vbhxdezm
+wzfkgzrj
+drjvuuyz
+qbknvxyx
+aegkjtil
+cklbkfhh
+mafufjxv
+gpwakxoa
+otyjtnxx
+nqdosdmm
+wungcwuz
+wiklkshf

+ 9 - 0
D06.2/D06.2.csproj

@@ -0,0 +1,9 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp2.1</TargetFramework>
+    <RootNamespace>D06._2</RootNamespace>
+  </PropertyGroup>
+
+</Project>

+ 50 - 0
D06.2/Program.cs

@@ -0,0 +1,50 @@
+using System;
+using System.IO;
+
+namespace D6._2
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            if (args.Length < 1) throw new ArgumentException();
+            if (File.Exists(args[0]) == false) throw new FileNotFoundException();
+
+            var freq = new int[8][];
+
+            using (var file = File.OpenText(args[0]))
+            {
+                while (true)
+                {
+                    var line = file.ReadLine();
+                    if (line == null) break;
+
+                    for (var i = 0; i < 8; i++)
+                    {
+                        if (freq[i] == null) freq[i] = new int[26];
+                        freq[i][line[i] - 'a']++;
+                    }
+                }
+            }
+
+            var password = new char[8];
+
+            for (var i = 0; i < 8; i++)
+            {
+                int min = int.MaxValue, mini = 0;
+                for (var ci = 0; ci < 26; ci++)
+                {
+                    if (freq[i][ci] < min)
+                    {
+                        mini = ci;
+                        min = freq[i][ci];
+                    }
+                }
+
+                password[i] = (char)(mini + 'a');
+            }
+
+            Console.WriteLine($"Password is : {string.Join("", password)}");
+        }
+    }
+}

+ 8 - 0
D06.2/Properties/launchSettings.json

@@ -0,0 +1,8 @@
+{
+  "profiles": {
+    "D06.2": {
+      "commandName": "Project",
+      "commandLineArgs": "\"..\\..\\..\\..\\D06.1\\input.txt\""
+    }
+  }
+}