Advertisement
PT_

AoE2018 - day 2

PT_
Dec 3rd, 2018
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 8.24 KB | None | 0 0
  1. #include <iostream>
  2. #include <sstream>
  3. #include <map>
  4.  
  5. int main() {
  6.     std::string data = "wkzhyfdpluzeqvajtbbosngkxc wrzhyfdplumeqvajtbioskfksc wrzhyfdolumyqvajtbiosngkxs urzhyfdplbmeqvrjtbiosngkxc wrzhyfrulumeqvajtbiosngkxf wrzhnfdprumvqvajtbiosngkxc wrzhyfpplumeivajtbiosrgkxc wrzhybdplumeqvaftbiosxgkxc wrzgyfdplumeqvaltbiosngcxc wrzhbfdzlumeqvajtbipsngkxc wrzhyfdplumwqeajtbiosngxxc wrzhyddplumeqvajtbimsngkxo wrzhyfdplumsqdajtfiosngkxc wrzvyfdplumeqjajtbkosngkxc wrzhyfddlumeqvujtbiosngxxc nrzhywdplumeqvajtbtosngkxc wzzhyfdplomeqvdjtbiosngkxc urzhyfdplumeqvaatbiosngkxb wtzyyfdplumeqvajtbiosngkxl wrzhyfdhlumnqvajebiosngkxc wrzhyfdplumpqvajtbiosnyjxc wrzdyfdplumeqvajtviospgkxc wrzhyfdplzmeqvajtbiosegfxc wrzhyfdglumkqvajtwiosngkxc wrzhtfdplgmeqvaqtbiosngkxc wrzhyfdplumeqvajxpiosngexc frzhyfdplvmeqvajtbiosngkxp wrzhyfkplumeqvajtbfosngkpc irzhyfqplumeqvajtbiosngktc wrzhyfdpluvoqvajtbioingkxc wrzhyfdplumemvautbuosngkxc wfzhyflplumeqvijtbiosngkxc wrzhyfdglumeqvzjkbiosngkxc wrzcyfdplaneqvajtbiosngkxc wrzhbfdplumeqwajtbiosngpxc szdhyfdplumeqvajtbiosngkxc krzhyfdplumeqvajtxilsngkxc brzhyfmplumexvajtbiosngkxc wrzhyvdplumeqvajtbiosiglxc orzhyfdplumeqvaotbcosngkxc hrzhyfdplumeqvaptbiocngkxc wwzhyfdklummqvajtbiosngkxc wrzhyfdppymeqvvjtbiosngkxc wsehyudplumeqvajtbiosngkxc wrzhyzpplumeqvajtbioscgkxc wrzhyfqpyumeqvajtbiusngkxc urzhyfdpdumeqmajtbiosngkxc wrzhyfdrlumxqvajtbiosnakxc wrthyfdplumeskajtbiosngkxc wrzhyfdplymeqvajtbiesbgkxc wrzhyfdqlumeqyajtciosngkxc trzhsfdplumeqyajtbiosngkxc wpzhyfdplimeqvajtbiosngfxc wrzhhfdplrmeqvajtbiosngkxx wrzhycdpgumeqvajtbioslgkxc wrzhyfdelumeqvajgtiosngkxc wrzhyfdplutebvajtbiosygkxc wrzhyfdplukeqvajtbiorngkec erzhyfdilumeqvajwbiosngkxc wrzhyfdplumnivxjtbiosngkxc wrzhyfdplumebvajtoiovngkxc wrzhyfdplumeqvajtbtosnwkxe wrzhyfxplumevvajtciosngkxc wbzhyfdxlumeqvajtriosngkxc wrzyyfdplumeqvajmbiosngkxb wfthyfdplumeqvajtbiosngkdc wrzhuedplumeqvajtbgosngkxc wrzhifdplumeqvajtsrosngkxc wrzhyfdplumqqvajtaiosngkac krzhyfvvlumeqvajtbiosngkxc wrzhyfdplzmeqqajtbiosngkvc wrzhyfqplumeqvajtbiosngdxy wrzhyfdpluieqvajtbiosngjjc wrzhyfdvlumeqrajdbiosngkxc wrzhcfdpxumeqvajtbiotngkxc wrzhyfdprumeqvaitbiosngexc wrzhygdplumeqvpjtbiasngkxc wrzhyndplumeqvajtpiosngkoc wrzhyfdplumedvajtriowngkxc wezjyndplumeqvajtbiosngkxc wrmhyfdplumewiajtbiosngkxc wrztyfdplumeqnajtbiobngkxc wrzhyfdpyumeqvajjbijsngkxc wrfhyfdplumeqkajtbiosnqkxc wrzhyfdpllmezvartbiosngkxc wszhyfdplumeqeajtbiqsngkxc wrzhyfdplumeqwajtbnosnikxc wrzvyfqulumeqvajtbiosngkxc drzhyfdplureqvajtbiqsngkxc wrzhyfdplumeqjamtbigsngkxc wrzhyfdplumeqvajbbiosngzrc grzhyfdpuumeqvajtbicsngkxc wrrhyfdplumeqvajtgiosnggxc wrzhyfkplumvqvajtbiosnhkxc wrzhyfdplumeqvajtbicspgkxa wrzhyfdplumeqvajtiiosnggoc wfzhyfdplumyqvaytbiosngkxc wrzhyfdpcumeqvajtbibsnfkxc wrzhyfdplumeqvajtbigsnzkmc wrzhyfdplcmeqvqjtriosngkxc wrzhypdplwmeqvajtbiosnvkxc wrziyfdmlumeqvaatbiosngkxc wkzhyfdplsmeqvajobiosngkxc wrzhyfdplumeqvkjvliosngkxc wzzbyfdplumeqvajtbiolngkxc wrzhyfdplvweqvajtbipsngkxc wrzhyvdplumeqvujtbiosnfkxc wrbhyfdplumedvajtbiosnhkxc wrzhofdplumeqvajtbiosnskxy wrzhyfdplumeqvaetbiohwgkxc wezhyfoplumeqvajtbiosngmxc wrzhykdblumeqvajtbiosngkjc wrzhyddplwmeqvajtbioungkxc wrzhyldplumqqvajpbiosngkxc wrzhyfdtlumeqvajtbiusngkcc wrzhyfdilumeqvajtbiosdgkxk wrvhywdplumeqvajtbiosngoxc wrzhyfdpyumeqvajtkiomngkxc wrzhyfdpbummqvajtbiosngcxc wrzhyfdpljmeqvajlbiosngjxc wrzhyfdpmuieqdajtbiosngkxc wrzgrfdplumeqvaktbiosngkxc wrzhgrdpluueqvajtbiosngkxc wazhyfdplhmeqvaqtbiosngkxc wruhyfdplumeqvujtliosngkxc wrzvyfdslumeqvajtbiwsngkxc wrzhyfdplumeivactbiosqgkxc wrzpyfdpbumeqvajtbioszgkxc bgzhyfdplumeyvajtbiosngkxc wrzhyfkplumeqvajtbiotngkxh wrdhyfhplumexvajtbiosngkxc brzhyfdpgumeqvgjtbiosngkxc arzhqfdpeumeqvajtbiosngkxc wrzhyftplumeqvajfbiosnykxc wrzhyfdpcumeqvartbtosngkxc wrzhvfzplumdqvajtbiosngkxc wrzhyfdjlumeqvaetbiosjgkxc wrbhyfdplumeqvajjjiosngkxc wrxhyfdplumeqvajtbiyskgkxc wpzhyydplumeqvajtbiosqgkxc wrzhyfdplumzqvajtbzoongkxc crzhyfdplnmeqvajtbjosngkxc wrzhyfdpluveusajtbiosngkxc wrzhypdpluyecvajtbiosngkxc wrnhyfdplumeqvajtbioengoxc wrzhypdplumefvajybiosngkxc wrzhyfdplumeqvattviosngkdc wrzhyfdplqmeqbajtbiostgkxc wrghyfdpluveqvajtbiosngkxn wryhyfdplumeqvajrbiopngkxc wrzhyqdplumeqvajtbiwsngkxt wrmoyfdpluheqvajtbiosngkxc wrghyfdnlumeqvyjtbiosngkxc wrzpyfdplumevvaatbiosngkxc wrzhyfdplumhqvajtbiodngxxc wrzhyfdplumeqcajtbioyjgkxc wrzhyfdplumeqvajabirsngkgc wrzhtfnplukeqvajtbiosngkxc wqzhyfdplumeqvajtbiopegkxc lrzhzfdplumeqdajtbiosngkxc wrzzyfdplumeqvajnkiosngkxc wrzhyfdflmmeqvajmbiosngkxc wrzoyfdplumeqvjjtpiosngkxc wrzhyfdpmpmeqvajhbiosngkxc krvhyfdplumeqvajtbiossgkxc wrzhyfdplumeqvaetviosnmkxc wrzhyfzclumeqvajtbiosngwxc wrzhyfdpvumeqvajtbiosngkcv wrzhyfdpoumeqvajtbiozngoxc wrzhyfwglumeqvajtbxosngkxc wrshyfdplumeqiajtbiosngklc wrzhyfdptdmeqvajtziosngkxc wrwhyfdplumeqqajtbiosngkxj wrzlyfypldmeqvajtbiosngkxc wrzhyfdplumeqvajtbirknikxc wrzhyhdplumeqvajtbmosnbkxc wyzhyfiplumeqvwjtbiosngkxc wrzgyfsplumeqvajtziosngkxc wrzhrfdllumepvajtbiosngkxc wrzayfdplumeqvajtbiosqgktc whzhyfdplemnqvajtbiosngkxc wazhyfdplumeqvaptbioongkxc wrzhyfdpluueqvajtbiosnglvc wrzhyfdplumjqvajmbionngkxc wrzhofdplvmeqvajtbiosnqkxc wrzhfidpluzeqvajtbiosngkxc wrzhlfdpcumeqvaatbiosngkxc wrzhyfdplumewvajtbiosigkoc wrzjyfdplwmeqvajtbiodngkxc wrzhyfdplumeqnsjtniosngkxc wrzxyfdplxmeqvajtbiosngkdc wrzhyfdplumpqvartbuosngkxc orzhyfdplumeqzsjtbiosngkxc wrzhyfdplumebvawtbiosngkxt wrztyfdulumeqvajtbiosngkxy wrzhytdplumeqvajtbznsngkxc wrzhvfdplumeqvajtbinsngkxu wezmyfdplumeqvajhbiosngkxc wrzhhftplumeqvajtaiosngkxc wrzhyfgplumeqvajtbioskgjxc ujuhyfdplumeqvajtbiosngkxc wryhymdplumeqvaftbiosngkxc wrzhygdplumeqvajibiosfgkxc frzhyfdppumeqvavtbiosngkxc wruhyfdylumeqvajzbiosngkxc wrzhzfdplumeqvajtbwosygkxc wrzhyfdplumeqvaeteiojngkxc wrhhyfdplumeqvajtiiopngkxc irzhyfdplumeqvajtbiosngryc wrvhycdpzumeqvajtbiosngkxc wrzhyfdplumyqwajtboosngkxc wrzthfdplumeqvajtbioengkxc mrzhyfdalumeqvajtbiosngcxc wrzhyfdflumpqvajtbiosngkmc wrzhyfxplumeqvajtbiosnvkxo wrzhyfdglumeqvajtbiosnfkxu wrzhyfdnrumeqpajtbiosngkxc wrzhlipplumeqvajtbiosngkxc wrzhkfdplumemvajtbiohngkxc wrziyfdmlumeqvaatbiosngkoc wrzhyfdplwceqvajtbiosngzxc wrzhyfdplumpqvactbiosngixc wdzhyfdhdumeqvajtbiosngkxc wnzhyfdplumeqvajtbbosngrxc wrzhyfdblumeqvajtbiosngvxw wyzhyfxpkumeqvajtbiosngkxc wrzhywdplumjqvajgbiosngkxc wrzhyfdpxumhqvajtbiokngkxc wrzhxfpplumeqvajtbiosngkxk mrzhyfdplumeqkajubiosngkxc drzhyfdplumeqvajtbioingnxc wrekyfdplumeqvajtbidsngkxc wrzhyfdplumeanyjtbiosngkxc wrzhyddpluzeqvajtbiosngtxc wrzfyfdplumeqvaqtbiosngkxr wrghywdpluneqvajtbiosngkxc wrzhyfdplueeqvaptbioyngkxc wrzhyqdpllmeqvajtbiosngdxc whzhyfdxlumeqvajtbiosngksc wrzjyfdplumeqvuitbiosngkxc brzhyfdplumeqhajtbiolngkxc wrzhyfqclureqvajtbiosngkxc wwzhpfdplureqvajtbiosngkxc wrzhyfdplumeqvavebijsngkxc wrzhyfdpuumeqvajtsiosnkkxc wrxhyfuplumeqvajtbiosngpxc wrzhyfdplumeqvujlbiospgkxc wrzvyfdplumeqvajtbiwsngpxc wrzhyndplumeqvajtbiwsnekxc wrzhkfdpoumeqvautbiosngkxc";
  7.     std::string segment;
  8.  
  9.     std::stringstream input{data};
  10.     int c2{0}, c3{0};
  11.     while (input >> segment) {
  12.         std::map<char, uint8_t> chars;
  13.         for (auto c : segment) {
  14.             chars[c]++;
  15.         }
  16.  
  17.         bool hasTwo{false};
  18.         bool hasThree{false};
  19.         for (auto count : chars) {
  20.             if (count.second == 2) {
  21.                 hasTwo = true;
  22.             }
  23.             if (count.second == 3) {
  24.                 hasThree = true;
  25.             }
  26.         }
  27.         if (hasTwo) {
  28.             c2++;
  29.         }
  30.         if (hasThree) {
  31.             c3++;
  32.         }
  33.     }
  34.  
  35.     std::cout << "Solution part 1: " << (c2 * c3) << std::endl;
  36.  
  37.     std::stringstream input2{data};
  38.     std::string strings[250];
  39.     std::string inputLine;
  40.     int var{0}, var2{0};
  41.  
  42.     while (input2 >> inputLine) {
  43.         strings[var++] = inputLine;
  44.     }
  45.  
  46.     for (var = 0; var < 250; var++) {
  47.         for (var2 = var + 1; var2 < 250; var2++) {
  48.             std::string string1 = strings[var];
  49.             const char *string2 = strings[var2].c_str();
  50.             char val1, val2;
  51.             uint8_t amountOfDifferences{0};
  52.  
  53.             std::stringstream output;
  54.  
  55.             for (auto c : string1) {
  56.                 if (c != *string2++) {
  57.                     amountOfDifferences++;
  58.                 } else {
  59.                     output << c;
  60.                 }
  61.             }
  62.  
  63.             if (amountOfDifferences == 1) {
  64.                 std::cout << "Solution part 2: " << output.str() << std::endl;
  65.             }
  66.         }
  67.     }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement