fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <cstdint>
  5. #include <random>
  6. #include <limits>
  7. #include <functional>
  8. #include <map>
  9. #include <chrono>
  10. typedef std::vector<std::uint8_t> BType;
  11. typedef std::vector<BType> Block;
  12.  
  13. BType MakeData(std::size_t N = std::numeric_limits<std::uint16_t>::max()){
  14.  
  15. std::random_device RD;
  16. std::mt19937 mt(RD());
  17. // std::mt19937 mt(0);
  18. std::uniform_int_distribution<int> uid(0, 255);
  19.  
  20. BType ret;
  21. for (std::size_t i = 0; i < N; i++){
  22. ret.push_back(uid(mt));
  23. }
  24.  
  25. return ret;
  26. }
  27.  
  28. bool Append(Block& B, BType& Data){
  29.  
  30. B.push_back(Data);
  31.  
  32. return true;
  33. }
  34.  
  35. std::pair<std::size_t,BType> BlockSortEn(BType& Data){
  36. auto T = Data;
  37. Block B;
  38. BType R;
  39. std::size_t j = 0;
  40. for (std::size_t i = 1; i <= T.size(); i++){
  41. Append(B, T);
  42. std::rotate(T.begin(), T.begin()+1, T.end());
  43.  
  44. }
  45. std::sort(B.begin(), B.end());
  46.  
  47. for (std::size_t i = 0; i < B.size(); i++){
  48. R.push_back(B[i][Data.size() - 1]);
  49. if (B[i] == Data) j = i;
  50. }
  51.  
  52. return std::make_pair(j,R);
  53. }
  54.  
  55. BType BlockSortDe(std::pair<std::size_t, BType>& Data){
  56. std::vector<std::pair<std::uint8_t,std::size_t>> T;
  57. BType R;
  58. for (std::size_t i = 0; i < Data.second.size(); i++){
  59. T.push_back(std::make_pair(Data.second[i], i));
  60. }
  61. std::sort(T.begin(), T.end());
  62. std::size_t P = Data.first;
  63. for (std::size_t i = 0; i < T.size(); i++){
  64. R.push_back(T[P].first);
  65. P = T[P].second;
  66. }
  67.  
  68. return R;
  69.  
  70. }
  71.  
  72. bool MakeHoge(BType D){
  73.  
  74. auto Start = std::chrono::high_resolution_clock::now();
  75.  
  76. auto BSE = BlockSortEn(D);
  77. auto BSD = BlockSortDe(BSE);
  78.  
  79. auto End = std::chrono::high_resolution_clock::now();
  80.  
  81. auto E = std::chrono::duration_cast<std::chrono::milliseconds>(End - Start);
  82.  
  83. std::cout << "経過時間は" << E.count() << "msでした。"<<std::endl;
  84.  
  85. std::cout << "オリジナル" << std::endl;
  86. for (auto& o : D) std::cout << static_cast<int>(o) << ',';
  87. std::cout << std::endl;
  88. std::cout << "復号化" << std::endl;
  89. for (auto& o : BSD) std::cout << static_cast<int>(o) << ',';
  90. std::cout << std::endl;
  91. std::cout << "符号化@" <<BSE.first<< std::endl;
  92. for (auto& o : BSE.second) std::cout << static_cast<int>(o) << ',';
  93. std::cout << std::endl;
  94.  
  95. if (D == BSD){
  96. std::cout << "データ完全一致!" << std::endl;
  97. }
  98. else{
  99. std::cout << "データ完全一致しませんでした!" << std::endl;
  100. }
  101.  
  102. //std::cout << "経過時間は" << E.count() << "msでした。"<<std::endl;
  103.  
  104.  
  105. return true;
  106. }
  107.  
  108. int main(){
  109. static const std::size_t L = 1024*3;
  110. auto D = MakeData(L);
  111. BType A{ 'A', 'B', 'B', 'A', 'C' }; //サンプルA
  112. BType B{ 'a','e','a','d','a','c','a','b' };//サンプルB
  113.  
  114. MakeHoge(A);
  115. std::cout << std::endl;
  116. MakeHoge(B);
  117. std::cout << std::endl;
  118. MakeHoge(D);
  119. std::cout << std::endl;
  120. return 0;
  121. }
  122.  
Success #stdin #stdout 0.01s 3444KB
stdin
Standard input is empty
stdout
経過時間は0msでした。
オリジナル
65,66,66,65,67,
復号化
65,66,66,65,67,
符号化@0
67,66,66,65,65,
データ完全一致!

経過時間は0msでした。
オリジナル
97,101,97,100,97,99,97,98,
復号化
97,101,97,100,97,99,97,98,
符号化@3
99,100,101,98,97,97,97,97,
データ完全一致!

経過時間は12msでした。
オリジナル
71,35,67,4,2,183,199,48,108,199,70,150,95,180,101,26,132,143,224,61,151,85,174,216,81,133,229,162,188,203,50,93,224,232,153,32,174,79,174,175,15,7,254,170,166,196,215,199,109,211,252,176,53,118,234,146,249,45,37,98,170,13,87,228,185,123,35,182,146,205,114,163,33,176,7,199,115,50,113,3,146,131,171,123,29,125,154,232,154,84,150,77,111,143,12,147,90,86,52,1,115,53,61,122,171,224,131,39,102,3,86,35,225,207,164,192,130,17,32,206,30,164,219,211,170,177,238,141,160,175,188,56,175,43,86,137,171,79,250,70,108,235,50,58,53,76,65,249,87,158,178,87,231,90,76,77,45,216,153,66,1,167,59,78,79,196,242,215,6,22,240,145,37,208,200,59,201,86,47,124,214,68,119,128,202,226,134,6,165,6,228,59,90,25,17,229,225,216,9,94,14,227,51,51,97,86,2,190,252,157,130,218,56,51,55,233,147,252,234,127,85,150,20,40,195,10,99,116,233,27,240,43,148,161,193,103,198,95,1,195,161,175,71,201,80,64,222,168,102,140,198,150,133,55,235,33,119,66,217,236,136,96,140,144,102,1,74,199,97,132,253,11,102,27,107,84,23,187,108,33,140,242,184,138,9,198,178,220,10,203,144,97,106,114,78,76,12,112,6,184,106,127,208,236,175,56,84,208,131,239,144,183,246,187,99,164,247,80,198,70,210,205,209,71,204,19,207,193,154,108,59,17,170,75,226,123,241,113,121,253,122,216,51,163,88,75,108,144,27,153,90,33,109,230,147,88,162,105,53,251,249,12,94,52,243,119,63,93,69,127,94,25,68,119,181,233,136,132,104,255,101,197,181,193,187,151,10,98,119,153,126,41,7,26,58,255,175,50,133,176,69,186,238,20,136,172,210,161,58,233,218,145,31,107,155,22,87,22,131,188,67,2,184,74,22,27,42,180,50,240,194,131,219,117,78,25,185,194,135,239,213,198,183,91,173,91,123,215,34,224,167,155,248,204,112,175,189,34,53,59,18,149,240,182,119,189,116,16,109,121,64,89,211,237,161,168,58,248,141,147,86,184,128,255,2,190,123,227,115,215,9,161,44,217,98,230,89,30,111,238,201,29,226,133,77,197,1,82,41,0,169,105,201,179,156,41,224,157,93,82,21,4,231,149,35,6,97,193,171,144,211,1,35,94,158,252,64,241,179,110,231,236,62,197,248,137,68,153,102,62,65,175,139,179,125,15,42,24,104,5,125,123,92,55,157,201,68,30,255,195,73,228,14,143,50,59,223,193,239,67,80,249,31,154,147,242,81,147,236,89,189,198,27,245,115,69,235,1,57,174,87,158,151,231,45,206,199,19,14,83,221,181,224,147,40,19,71,132,78,228,197,105,153,29,145,232,65,54,158,145,39,39,82,180,158,239,250,130,226,134,171,39,73,19,73,177,25,213,168,170,172,240,184,246,79,196,128,190,50,235,91,255,181,251,126,84,65,220,33,251,74,147,135,140,220,22,74,149,3,154,117,232,111,250,196,108,164,245,111,32,225,59,166,52,22,188,2,23,195,152,63,143,24,126,0,58,250,111,12,252,242,4,178,199,111,71,0,225,2,110,143,10,22,204,121,56,234,102,0,182,169,86,14,230,231,135,29,211,52,233,79,34,67,193,137,117,229,200,46,50,161,9,24,234,192,111,36,191,206,142,86,70,135,163,252,189,150,192,83,222,147,145,13,140,42,178,102,233,221,16,143,155,118,63,196,188,214,49,36,47,52,200,141,174,221,23,130,67,201,193,76,211,36,111,110,80,88,98,174,70,134,22,26,116,14,67,230,110,30,186,10,203,173,240,242,86,111,224,227,85,172,142,26,142,74,104,204,37,98,1,194,154,57,18,213,237,183,2,191,12,22,124,199,109,143,29,214,239,158,242,54,183,62,237,85,53,156,224,221,9,210,179,129,211,89,146,40,154,90,253,91,66,113,35,124,161,3,76,142,25,41,148,237,252,188,51,86,80,23,252,217,61,112,222,186,252,147,161,92,205,67,199,203,40,236,175,194,36,219,76,234,127,168,27,137,247,118,147,94,191,62,20,21,7,19,131,67,247,145,60,55,68,51,39,18,6,252,52,49,213,217,254,112,205,202,117,169,69,207,164,212,127,149,246,189,120,5,37,143,0,153,140,35,52,174,150,65,227,54,110,64,48,25,41,204,146,201,207,113,180,124,95,2,142,231,167,160,225,200,151,207,61,249,204,231,210,31,203,14,69,162,86,219,231,180,140,208,162,153,249,145,194,127,83,78,68,229,183,171,221,255,147,139,105,123,26,230,70,243,207,92,126,88,60,95,233,141,246,119,234,68,100,173,229,219,166,225,228,95,53,109,162,82,88,129,174,2,246,104,3,179,81,226,177,166,48,44,149,70,64,246,123,189,132,226,104,87,237,161,14,65,158,138,236,108,58,17,67,151,144,129,47,41,14,147,104,212,243,45,123,241,77,28,168,162,173,132,219,242,212,237,74,129,194,204,232,184,127,114,240,34,197,88,96,170,209,62,192,73,30,44,187,124,224,67,118,197,94,35,64,91,209,45,170,196,213,196,206,154,129,61,63,68,225,156,204,63,51,243,107,251,113,59,176,23,19,111,86,205,12,31,195,224,221,176,9,157,48,59,32,53,44,76,219,30,97,118,96,139,155,248,100,156,124,90,249,164,30,115,92,244,115,6,96,104,194,216,194,141,204,113,253,128,37,223,118,58,68,171,69,105,77,163,29,147,181,2,67,164,245,150,135,207,254,139,177,71,180,11,203,105,12,219,166,240,46,73,147,58,54,93,151,126,130,159,162,172,82,214,130,118,207,230,99,86,68,42,204,185,109,62,221,135,82,116,95,115,177,69,255,249,53,170,247,111,62,137,165,42,195,144,80,58,93,66,236,215,97,23,252,251,142,116,244,142,37,65,179,178,255,217,169,16,210,97,142,91,16,128,86,214,99,244,149,187,32,138,223,45,31,247,156,28,182,183,21,218,179,146,119,108,104,63,183,125,33,28,229,154,169,221,79,33,216,124,87,132,179,3,44,134,149,152,103,70,82,209,161,176,4,205,77,191,7,128,168,137,133,21,6,78,249,111,73,185,121,26,162,63,105,42,44,1,162,220,145,122,6,212,181,209,196,255,160,235,98,188,109,156,254,213,180,236,254,24,116,68,243,45,181,248,71,162,195,122,41,10,150,186,160,93,30,239,51,253,34,35,55,155,139,142,234,50,10,190,200,49,175,215,116,139,127,175,157,154,19,47,238,97,156,171,167,210,53,38,146,105,114,244,33,153,78,7,131,25,174,36,70,80,1,173,132,15,175,161,60,209,166,137,127,156,137,197,113,55,39,84,80,183,194,78,128,156,8,29,108,229,206,182,100,111,136,228,224,212,91,240,190,202,193,99,31,13,22,174,22,26,77,152,1,80,148,156,8,221,139,131,193,98,34,239,236,74,239,75,80,150,79,53,113,212,214,142,196,198,177,213,35,19,224,223,82,80,123,16,30,32,151,17,15,236,202,57,60,82,254,78,57,77,34,185,216,141,149,95,244,45,60,3,13,240,12,27,72,10,184,100,43,185,29,67,188,190,233,43,234,86,98,54,106,181,44,188,239,80,4,162,111,31,246,1,82,66,51,93,203,220,104,13,114,118,159,23,1,120,115,203,22,49,245,176,159,41,88,243,47,189,221,136,57,151,215,145,130,87,219,81,147,13,29,128,190,95,225,12,91,70,55,17,202,196,85,5,165,25,249,188,17,225,175,208,97,96,243,188,158,218,32,53,58,247,50,81,99,238,245,149,145,27,39,131,106,43,186,82,100,225,106,69,29,182,137,39,237,122,215,136,74,90,24,146,216,151,140,186,19,40,44,211,46,147,175,56,102,5,38,77,173,38,57,15,183,143,171,77,64,202,43,100,232,203,212,119,195,88,236,201,243,181,121,249,87,8,178,138,248,22,109,143,252,67,202,228,47,253,112,140,238,118,192,84,79,48,144,172,66,215,222,123,163,13,229,175,95,9,179,133,98,3,216,69,38,135,7,245,232,144,40,13,84,109,113,187,131,131,236,112,128,0,187,60,129,176,247,193,247,102,34,195,36,221,193,51,31,82,152,7,193,190,173,94,155,130,232,219,74,32,33,109,164,133,68,144,1,209,84,90,219,149,14,164,49,239,0,22,46,12,210,193,155,223,218,64,243,144,229,8,250,67,247,168,82,49,226,135,11,14,54,187,142,155,105,235,157,240,14,236,52,110,219,71,38,33,146,55,172,23,192,113,28,95,184,30,142,175,26,60,4,144,34,255,155,120,202,203,175,252,23,213,62,206,165,220,4,86,40,180,254,219,219,71,1,193,178,225,153,82,72,116,11,29,208,108,13,174,160,63,43,19,162,172,37,195,96,193,255,35,100,120,200,143,184,13,165,168,38,167,72,41,136,4,109,66,36,128,160,143,228,137,59,74,243,36,155,228,137,227,133,189,191,238,135,200,212,65,38,18,90,222,179,24,216,166,75,25,218,23,24,240,159,230,233,128,172,31,226,24,100,164,218,29,230,116,130,210,216,94,157,1,173,189,184,199,238,130,54,58,224,225,72,118,91,25,149,248,60,20,242,177,91,171,165,80,96,197,190,57,115,203,159,246,96,223,167,214,139,250,5,158,219,250,57,137,115,161,147,42,234,221,108,211,124,221,113,139,8,168,158,146,183,209,93,107,154,42,208,42,146,164,214,78,11,187,112,206,122,67,107,236,188,105,192,249,29,25,88,69,15,204,182,113,252,117,220,7,99,171,4,114,79,173,86,230,158,172,122,3,218,153,199,30,121,28,17,121,139,221,53,69,29,127,101,8,207,54,9,193,120,155,161,114,138,38,233,107,2,166,11,3,32,133,34,105,1,60,18,20,15,74,215,68,226,203,154,46,6,172,19,192,225,224,217,4,112,199,180,128,41,146,75,226,172,192,47,85,6,72,226,123,254,73,43,179,4,130,153,234,170,108,158,17,238,104,253,170,166,186,221,101,165,230,130,171,89,195,100,50,224,250,45,241,227,247,69,96,238,5,241,106,33,68,22,134,190,233,71,6,186,149,110,186,182,52,4,130,4,12,172,153,114,239,0,187,227,155,170,192,217,14,214,180,176,12,171,115,77,4,225,229,219,129,175,118,81,59,141,245,189,47,255,70,73,80,114,155,201,78,47,179,37,188,179,163,238,198,215,27,155,159,202,226,139,234,25,34,49,232,170,215,82,11,21,97,67,100,210,26,181,25,113,113,73,32,202,187,229,150,255,28,34,76,31,160,120,16,122,110,99,172,97,119,206,134,244,123,25,107,125,208,215,94,132,33,61,193,76,170,130,214,214,188,142,69,112,178,33,164,44,125,120,127,173,193,170,243,235,12,227,18,83,23,130,122,212,196,159,178,10,168,194,41,222,191,151,211,78,173,191,43,8,66,228,34,210,212,15,137,34,69,214,57,88,240,210,66,8,166,227,219,252,45,107,21,98,136,209,231,73,182,11,54,25,190,180,144,160,110,224,127,37,128,62,93,58,72,161,80,86,25,191,34,220,222,240,170,207,138,75,182,17,150,31,218,241,170,32,196,60,37,237,92,18,22,96,145,191,102,121,167,193,245,79,0,129,102,9,132,255,165,208,238,213,252,75,131,22,12,52,233,87,58,178,238,140,13,42,235,213,145,216,142,82,175,214,172,76,133,111,166,9,55,114,37,49,141,54,203,63,16,129,30,177,101,103,46,10,212,24,85,150,224,186,45,202,4,50,22,139,87,133,40,6,145,139,147,63,158,246,247,55,15,150,221,134,105,128,233,131,12,166,255,160,216,150,171,82,140,222,195,32,10,131,110,51,152,216,126,33,214,57,109,57,88,183,54,58,251,136,112,22,62,21,102,237,212,184,195,195,210,187,164,61,129,157,157,255,216,104,117,111,116,120,64,94,61,76,178,84,70,11,196,103,70,208,151,59,58,166,178,171,137,47,104,198,250,203,163,4,181,226,143,190,223,164,255,0,235,61,28,153,211,216,15,240,23,208,223,245,136,49,44,228,241,53,18,255,159,128,184,149,160,48,180,211,9,170,2,150,233,252,10,166,50,96,133,12,68,89,210,87,125,232,252,210,117,226,196,192,38,71,213,226,111,185,104,47,47,59,214,121,170,90,165,203,208,83,138,37,1,249,90,45,204,102,180,89,172,59,232,223,124,225,55,82,6,148,144,128,138,164,246,116,170,0,163,111,173,29,201,174,244,191,254,247,186,121,175,244,3,38,129,77,125,83,23,149,30,5,9,6,51,105,245,1,46,218,5,65,61,208,178,55,137,61,208,85,59,127,137,93,68,213,117,163,99,183,229,198,139,152,89,81,108,98,214,18,39,140,9,136,75,80,171,71,216,15,108,84,54,106,143,84,23,32,62,33,208,243,221,161,187,199,176,249,127,244,152,10,242,99,150,164,32,155,44,67,122,135,127,61,199,16,91,68,231,249,230,27,13,233,131,58,135,244,192,230,80,82,7,6,145,160,40,223,135,208,211,167,115,194,61,109,152,81,84,19,158,251,25,28,203,39,8,172,212,17,37,133,226,94,59,97,206,214,232,13,222,137,248,31,225,183,129,121,94,19,210,70,123,24,231,245,123,63,35,57,75,216,174,71,112,56,248,0,73,208,206,220,66,217,91,106,158,106,1,245,249,171,175,59,246,116,20,132,194,252,174,98,178,133,245,64,213,7,169,54,182,67,221,97,5,218,194,27,135,24,248,170,37,17,16,175,199,108,36,78,5,198,29,49,22,103,157,67,86,181,171,60,224,158,40,114,235,72,183,159,25,85,208,72,5,93,47,21,250,133,172,85,196,186,62,230,
復号化
71,35,67,4,2,183,199,48,108,199,70,150,95,180,101,26,132,143,224,61,151,85,174,216,81,133,229,162,188,203,50,93,224,232,153,32,174,79,174,175,15,7,254,170,166,196,215,199,109,211,252,176,53,118,234,146,249,45,37,98,170,13,87,228,185,123,35,182,146,205,114,163,33,176,7,199,115,50,113,3,146,131,171,123,29,125,154,232,154,84,150,77,111,143,12,147,90,86,52,1,115,53,61,122,171,224,131,39,102,3,86,35,225,207,164,192,130,17,32,206,30,164,219,211,170,177,238,141,160,175,188,56,175,43,86,137,171,79,250,70,108,235,50,58,53,76,65,249,87,158,178,87,231,90,76,77,45,216,153,66,1,167,59,78,79,196,242,215,6,22,240,145,37,208,200,59,201,86,47,124,214,68,119,128,202,226,134,6,165,6,228,59,90,25,17,229,225,216,9,94,14,227,51,51,97,86,2,190,252,157,130,218,56,51,55,233,147,252,234,127,85,150,20,40,195,10,99,116,233,27,240,43,148,161,193,103,198,95,1,195,161,175,71,201,80,64,222,168,102,140,198,150,133,55,235,33,119,66,217,236,136,96,140,144,102,1,74,199,97,132,253,11,102,27,107,84,23,187,108,33,140,242,184,138,9,198,178,220,10,203,144,97,106,114,78,76,12,112,6,184,106,127,208,236,175,56,84,208,131,239,144,183,246,187,99,164,247,80,198,70,210,205,209,71,204,19,207,193,154,108,59,17,170,75,226,123,241,113,121,253,122,216,51,163,88,75,108,144,27,153,90,33,109,230,147,88,162,105,53,251,249,12,94,52,243,119,63,93,69,127,94,25,68,119,181,233,136,132,104,255,101,197,181,193,187,151,10,98,119,153,126,41,7,26,58,255,175,50,133,176,69,186,238,20,136,172,210,161,58,233,218,145,31,107,155,22,87,22,131,188,67,2,184,74,22,27,42,180,50,240,194,131,219,117,78,25,185,194,135,239,213,198,183,91,173,91,123,215,34,224,167,155,248,204,112,175,189,34,53,59,18,149,240,182,119,189,116,16,109,121,64,89,211,237,161,168,58,248,141,147,86,184,128,255,2,190,123,227,115,215,9,161,44,217,98,230,89,30,111,238,201,29,226,133,77,197,1,82,41,0,169,105,201,179,156,41,224,157,93,82,21,4,231,149,35,6,97,193,171,144,211,1,35,94,158,252,64,241,179,110,231,236,62,197,248,137,68,153,102,62,65,175,139,179,125,15,42,24,104,5,125,123,92,55,157,201,68,30,255,195,73,228,14,143,50,59,223,193,239,67,80,249,31,154,147,242,81,147,236,89,189,198,27,245,115,69,235,1,57,174,87,158,151,231,45,206,199,19,14,83,221,181,224,147,40,19,71,132,78,228,197,105,153,29,145,232,65,54,158,145,39,39,82,180,158,239,250,130,226,134,171,39,73,19,73,177,25,213,168,170,172,240,184,246,79,196,128,190,50,235,91,255,181,251,126,84,65,220,33,251,74,147,135,140,220,22,74,149,3,154,117,232,111,250,196,108,164,245,111,32,225,59,166,52,22,188,2,23,195,152,63,143,24,126,0,58,250,111,12,252,242,4,178,199,111,71,0,225,2,110,143,10,22,204,121,56,234,102,0,182,169,86,14,230,231,135,29,211,52,233,79,34,67,193,137,117,229,200,46,50,161,9,24,234,192,111,36,191,206,142,86,70,135,163,252,189,150,192,83,222,147,145,13,140,42,178,102,233,221,16,143,155,118,63,196,188,214,49,36,47,52,200,141,174,221,23,130,67,201,193,76,211,36,111,110,80,88,98,174,70,134,22,26,116,14,67,230,110,30,186,10,203,173,240,242,86,111,224,227,85,172,142,26,142,74,104,204,37,98,1,194,154,57,18,213,237,183,2,191,12,22,124,199,109,143,29,214,239,158,242,54,183,62,237,85,53,156,224,221,9,210,179,129,211,89,146,40,154,90,253,91,66,113,35,124,161,3,76,142,25,41,148,237,252,188,51,86,80,23,252,217,61,112,222,186,252,147,161,92,205,67,199,203,40,236,175,194,36,219,76,234,127,168,27,137,247,118,147,94,191,62,20,21,7,19,131,67,247,145,60,55,68,51,39,18,6,252,52,49,213,217,254,112,205,202,117,169,69,207,164,212,127,149,246,189,120,5,37,143,0,153,140,35,52,174,150,65,227,54,110,64,48,25,41,204,146,201,207,113,180,124,95,2,142,231,167,160,225,200,151,207,61,249,204,231,210,31,203,14,69,162,86,219,231,180,140,208,162,153,249,145,194,127,83,78,68,229,183,171,221,255,147,139,105,123,26,230,70,243,207,92,126,88,60,95,233,141,246,119,234,68,100,173,229,219,166,225,228,95,53,109,162,82,88,129,174,2,246,104,3,179,81,226,177,166,48,44,149,70,64,246,123,189,132,226,104,87,237,161,14,65,158,138,236,108,58,17,67,151,144,129,47,41,14,147,104,212,243,45,123,241,77,28,168,162,173,132,219,242,212,237,74,129,194,204,232,184,127,114,240,34,197,88,96,170,209,62,192,73,30,44,187,124,224,67,118,197,94,35,64,91,209,45,170,196,213,196,206,154,129,61,63,68,225,156,204,63,51,243,107,251,113,59,176,23,19,111,86,205,12,31,195,224,221,176,9,157,48,59,32,53,44,76,219,30,97,118,96,139,155,248,100,156,124,90,249,164,30,115,92,244,115,6,96,104,194,216,194,141,204,113,253,128,37,223,118,58,68,171,69,105,77,163,29,147,181,2,67,164,245,150,135,207,254,139,177,71,180,11,203,105,12,219,166,240,46,73,147,58,54,93,151,126,130,159,162,172,82,214,130,118,207,230,99,86,68,42,204,185,109,62,221,135,82,116,95,115,177,69,255,249,53,170,247,111,62,137,165,42,195,144,80,58,93,66,236,215,97,23,252,251,142,116,244,142,37,65,179,178,255,217,169,16,210,97,142,91,16,128,86,214,99,244,149,187,32,138,223,45,31,247,156,28,182,183,21,218,179,146,119,108,104,63,183,125,33,28,229,154,169,221,79,33,216,124,87,132,179,3,44,134,149,152,103,70,82,209,161,176,4,205,77,191,7,128,168,137,133,21,6,78,249,111,73,185,121,26,162,63,105,42,44,1,162,220,145,122,6,212,181,209,196,255,160,235,98,188,109,156,254,213,180,236,254,24,116,68,243,45,181,248,71,162,195,122,41,10,150,186,160,93,30,239,51,253,34,35,55,155,139,142,234,50,10,190,200,49,175,215,116,139,127,175,157,154,19,47,238,97,156,171,167,210,53,38,146,105,114,244,33,153,78,7,131,25,174,36,70,80,1,173,132,15,175,161,60,209,166,137,127,156,137,197,113,55,39,84,80,183,194,78,128,156,8,29,108,229,206,182,100,111,136,228,224,212,91,240,190,202,193,99,31,13,22,174,22,26,77,152,1,80,148,156,8,221,139,131,193,98,34,239,236,74,239,75,80,150,79,53,113,212,214,142,196,198,177,213,35,19,224,223,82,80,123,16,30,32,151,17,15,236,202,57,60,82,254,78,57,77,34,185,216,141,149,95,244,45,60,3,13,240,12,27,72,10,184,100,43,185,29,67,188,190,233,43,234,86,98,54,106,181,44,188,239,80,4,162,111,31,246,1,82,66,51,93,203,220,104,13,114,118,159,23,1,120,115,203,22,49,245,176,159,41,88,243,47,189,221,136,57,151,215,145,130,87,219,81,147,13,29,128,190,95,225,12,91,70,55,17,202,196,85,5,165,25,249,188,17,225,175,208,97,96,243,188,158,218,32,53,58,247,50,81,99,238,245,149,145,27,39,131,106,43,186,82,100,225,106,69,29,182,137,39,237,122,215,136,74,90,24,146,216,151,140,186,19,40,44,211,46,147,175,56,102,5,38,77,173,38,57,15,183,143,171,77,64,202,43,100,232,203,212,119,195,88,236,201,243,181,121,249,87,8,178,138,248,22,109,143,252,67,202,228,47,253,112,140,238,118,192,84,79,48,144,172,66,215,222,123,163,13,229,175,95,9,179,133,98,3,216,69,38,135,7,245,232,144,40,13,84,109,113,187,131,131,236,112,128,0,187,60,129,176,247,193,247,102,34,195,36,221,193,51,31,82,152,7,193,190,173,94,155,130,232,219,74,32,33,109,164,133,68,144,1,209,84,90,219,149,14,164,49,239,0,22,46,12,210,193,155,223,218,64,243,144,229,8,250,67,247,168,82,49,226,135,11,14,54,187,142,155,105,235,157,240,14,236,52,110,219,71,38,33,146,55,172,23,192,113,28,95,184,30,142,175,26,60,4,144,34,255,155,120,202,203,175,252,23,213,62,206,165,220,4,86,40,180,254,219,219,71,1,193,178,225,153,82,72,116,11,29,208,108,13,174,160,63,43,19,162,172,37,195,96,193,255,35,100,120,200,143,184,13,165,168,38,167,72,41,136,4,109,66,36,128,160,143,228,137,59,74,243,36,155,228,137,227,133,189,191,238,135,200,212,65,38,18,90,222,179,24,216,166,75,25,218,23,24,240,159,230,233,128,172,31,226,24,100,164,218,29,230,116,130,210,216,94,157,1,173,189,184,199,238,130,54,58,224,225,72,118,91,25,149,248,60,20,242,177,91,171,165,80,96,197,190,57,115,203,159,246,96,223,167,214,139,250,5,158,219,250,57,137,115,161,147,42,234,221,108,211,124,221,113,139,8,168,158,146,183,209,93,107,154,42,208,42,146,164,214,78,11,187,112,206,122,67,107,236,188,105,192,249,29,25,88,69,15,204,182,113,252,117,220,7,99,171,4,114,79,173,86,230,158,172,122,3,218,153,199,30,121,28,17,121,139,221,53,69,29,127,101,8,207,54,9,193,120,155,161,114,138,38,233,107,2,166,11,3,32,133,34,105,1,60,18,20,15,74,215,68,226,203,154,46,6,172,19,192,225,224,217,4,112,199,180,128,41,146,75,226,172,192,47,85,6,72,226,123,254,73,43,179,4,130,153,234,170,108,158,17,238,104,253,170,166,186,221,101,165,230,130,171,89,195,100,50,224,250,45,241,227,247,69,96,238,5,241,106,33,68,22,134,190,233,71,6,186,149,110,186,182,52,4,130,4,12,172,153,114,239,0,187,227,155,170,192,217,14,214,180,176,12,171,115,77,4,225,229,219,129,175,118,81,59,141,245,189,47,255,70,73,80,114,155,201,78,47,179,37,188,179,163,238,198,215,27,155,159,202,226,139,234,25,34,49,232,170,215,82,11,21,97,67,100,210,26,181,25,113,113,73,32,202,187,229,150,255,28,34,76,31,160,120,16,122,110,99,172,97,119,206,134,244,123,25,107,125,208,215,94,132,33,61,193,76,170,130,214,214,188,142,69,112,178,33,164,44,125,120,127,173,193,170,243,235,12,227,18,83,23,130,122,212,196,159,178,10,168,194,41,222,191,151,211,78,173,191,43,8,66,228,34,210,212,15,137,34,69,214,57,88,240,210,66,8,166,227,219,252,45,107,21,98,136,209,231,73,182,11,54,25,190,180,144,160,110,224,127,37,128,62,93,58,72,161,80,86,25,191,34,220,222,240,170,207,138,75,182,17,150,31,218,241,170,32,196,60,37,237,92,18,22,96,145,191,102,121,167,193,245,79,0,129,102,9,132,255,165,208,238,213,252,75,131,22,12,52,233,87,58,178,238,140,13,42,235,213,145,216,142,82,175,214,172,76,133,111,166,9,55,114,37,49,141,54,203,63,16,129,30,177,101,103,46,10,212,24,85,150,224,186,45,202,4,50,22,139,87,133,40,6,145,139,147,63,158,246,247,55,15,150,221,134,105,128,233,131,12,166,255,160,216,150,171,82,140,222,195,32,10,131,110,51,152,216,126,33,214,57,109,57,88,183,54,58,251,136,112,22,62,21,102,237,212,184,195,195,210,187,164,61,129,157,157,255,216,104,117,111,116,120,64,94,61,76,178,84,70,11,196,103,70,208,151,59,58,166,178,171,137,47,104,198,250,203,163,4,181,226,143,190,223,164,255,0,235,61,28,153,211,216,15,240,23,208,223,245,136,49,44,228,241,53,18,255,159,128,184,149,160,48,180,211,9,170,2,150,233,252,10,166,50,96,133,12,68,89,210,87,125,232,252,210,117,226,196,192,38,71,213,226,111,185,104,47,47,59,214,121,170,90,165,203,208,83,138,37,1,249,90,45,204,102,180,89,172,59,232,223,124,225,55,82,6,148,144,128,138,164,246,116,170,0,163,111,173,29,201,174,244,191,254,247,186,121,175,244,3,38,129,77,125,83,23,149,30,5,9,6,51,105,245,1,46,218,5,65,61,208,178,55,137,61,208,85,59,127,137,93,68,213,117,163,99,183,229,198,139,152,89,81,108,98,214,18,39,140,9,136,75,80,171,71,216,15,108,84,54,106,143,84,23,32,62,33,208,243,221,161,187,199,176,249,127,244,152,10,242,99,150,164,32,155,44,67,122,135,127,61,199,16,91,68,231,249,230,27,13,233,131,58,135,244,192,230,80,82,7,6,145,160,40,223,135,208,211,167,115,194,61,109,152,81,84,19,158,251,25,28,203,39,8,172,212,17,37,133,226,94,59,97,206,214,232,13,222,137,248,31,225,183,129,121,94,19,210,70,123,24,231,245,123,63,35,57,75,216,174,71,112,56,248,0,73,208,206,220,66,217,91,106,158,106,1,245,249,171,175,59,246,116,20,132,194,252,174,98,178,133,245,64,213,7,169,54,182,67,221,97,5,218,194,27,135,24,248,170,37,17,16,175,199,108,36,78,5,198,29,49,22,103,157,67,86,181,171,60,224,158,40,114,235,72,183,159,25,85,208,72,5,93,47,21,250,133,172,85,196,186,62,230,
符号化@860
239,126,248,79,143,170,41,102,128,239,71,255,211,245,235,105,102,152,197,246,52,23,44,66,80,157,71,98,95,144,106,37,188,181,225,95,170,107,4,67,255,86,183,174,60,11,244,179,161,102,113,149,104,98,122,67,130,202,220,136,217,171,52,179,60,80,242,163,176,77,21,30,120,102,218,72,104,250,85,78,97,238,215,9,85,21,115,35,40,7,82,134,46,112,71,122,165,18,82,21,41,220,191,78,213,152,176,135,15,156,43,66,139,39,87,101,156,229,5,161,166,216,102,140,176,215,211,95,54,138,221,143,151,195,32,41,252,178,72,50,220,186,46,152,166,135,82,116,182,253,78,70,180,191,240,205,22,133,225,249,76,143,131,176,4,46,105,235,111,31,147,140,40,170,104,145,184,108,232,163,27,3,11,161,116,203,19,228,41,149,217,94,86,240,175,125,20,216,212,55,132,57,69,17,216,123,199,116,120,91,63,221,17,169,151,37,130,212,58,28,182,59,55,188,25,158,39,60,92,214,227,38,59,57,53,199,186,154,40,73,23,7,84,43,172,204,94,35,18,62,150,116,238,60,82,133,20,11,107,62,183,47,131,174,134,74,0,203,112,220,155,18,49,248,12,87,68,50,13,52,10,6,159,176,218,84,221,83,83,84,172,2,240,252,80,97,212,226,42,254,143,90,179,123,9,23,135,90,251,234,142,48,94,159,29,123,181,91,131,78,54,86,177,75,165,7,175,22,22,101,142,121,210,123,230,145,22,12,102,194,168,144,215,233,198,121,255,113,61,77,156,25,33,249,198,185,8,123,69,13,153,163,69,173,11,135,143,201,218,149,16,73,219,89,164,199,184,206,129,110,93,68,99,51,145,249,76,12,210,150,248,172,111,45,195,74,59,218,23,3,187,30,164,153,170,73,17,111,125,132,106,32,90,235,108,38,244,178,163,62,126,79,220,253,25,189,79,137,28,133,77,102,240,228,191,215,98,144,149,213,140,34,63,94,71,1,255,113,123,86,49,174,108,211,66,243,111,194,195,138,170,114,142,204,45,127,17,5,179,172,145,128,60,65,71,173,192,5,3,69,53,168,138,203,51,145,171,39,55,131,27,18,137,133,144,147,19,158,146,86,20,160,203,82,126,122,47,159,72,128,25,25,194,156,15,105,208,140,27,165,68,154,147,13,191,63,175,202,240,73,100,106,233,42,155,53,164,3,48,30,181,40,161,49,223,249,244,252,243,209,243,186,90,231,77,250,154,103,22,200,240,211,1,93,129,104,36,47,192,137,86,78,243,19,228,189,64,166,157,199,79,160,29,214,136,37,200,52,82,34,164,22,234,4,235,143,247,203,166,115,175,46,100,190,180,193,68,227,56,188,66,51,6,110,216,63,239,86,182,166,252,236,35,47,211,12,94,241,210,32,32,34,115,221,58,95,79,176,85,249,105,207,11,130,183,58,84,98,227,65,169,242,14,141,247,70,113,60,225,9,178,35,92,146,51,133,218,175,175,188,121,112,38,154,202,35,78,109,214,214,190,250,136,1,108,50,147,118,93,80,131,59,87,54,161,53,168,0,54,26,108,53,48,151,137,167,228,94,85,81,225,113,200,47,50,172,175,45,26,1,248,196,145,57,88,187,161,171,235,129,94,194,217,53,164,224,33,127,137,65,207,191,22,32,102,128,111,209,236,213,109,186,183,203,123,160,204,61,119,162,152,147,104,118,110,121,35,120,77,245,80,252,218,70,212,232,5,14,62,37,84,150,76,153,210,109,82,91,172,220,119,8,93,188,35,239,157,97,122,224,44,17,2,29,34,205,130,252,182,14,131,250,33,201,86,55,12,234,214,25,133,137,58,93,63,215,78,91,116,88,53,106,216,247,171,142,93,14,176,169,34,115,177,84,91,149,255,36,103,250,210,174,86,199,103,198,230,111,219,233,230,219,174,19,248,177,175,209,38,171,208,27,167,82,225,58,235,6,39,192,113,254,70,46,19,231,111,0,195,184,219,136,142,237,251,22,1,15,236,59,166,239,136,88,252,138,57,170,146,78,34,53,90,172,3,193,61,193,44,219,115,241,57,76,171,150,129,26,105,38,205,133,36,153,214,117,201,254,83,114,59,194,211,132,6,245,221,233,84,150,114,174,246,78,171,70,239,86,144,201,230,161,110,165,73,82,1,75,75,84,247,67,118,152,50,89,216,219,242,179,55,80,215,93,1,168,1,153,223,162,186,135,171,31,142,39,70,172,60,18,125,127,208,14,192,81,143,107,108,126,178,192,39,209,13,154,56,196,47,237,208,127,24,227,151,172,25,97,169,80,3,4,201,90,99,142,51,234,242,43,67,147,111,128,162,173,249,22,233,210,124,139,174,249,130,13,178,104,126,25,163,197,80,82,147,57,195,57,41,230,152,211,180,236,171,68,64,74,59,153,249,231,147,170,84,18,124,154,142,118,253,16,12,217,173,177,183,64,212,235,237,123,207,161,115,160,5,62,58,137,63,157,209,54,51,50,9,121,127,197,12,226,64,215,173,216,35,147,198,124,175,228,116,150,28,190,60,149,6,50,118,136,22,88,195,80,246,69,97,221,215,21,51,208,144,30,172,199,210,238,6,59,37,133,193,86,10,21,37,88,174,235,108,217,193,230,10,242,187,7,110,163,81,214,184,195,182,35,248,24,68,67,82,43,127,180,177,221,255,234,144,39,56,129,11,247,153,191,168,204,178,21,101,152,196,22,193,246,24,220,185,108,226,216,96,47,74,147,238,132,34,203,63,162,69,146,139,134,197,188,169,155,51,158,241,131,225,97,184,54,91,54,233,45,27,25,93,31,67,243,208,187,199,236,154,15,81,119,75,170,196,48,221,29,70,57,185,4,84,16,199,22,61,188,53,33,199,33,230,131,54,111,122,2,149,52,160,179,250,162,245,192,247,199,249,19,36,117,100,77,133,163,226,86,30,232,12,136,71,236,253,204,69,4,254,187,61,50,192,66,197,251,113,25,241,221,207,109,53,182,204,55,106,4,13,161,80,205,40,153,127,105,244,199,1,245,171,30,137,95,167,120,57,227,72,26,189,246,24,82,111,230,215,246,99,142,219,104,213,202,252,210,137,154,223,155,175,72,97,247,114,238,67,130,53,243,33,146,68,98,68,182,212,97,246,189,160,116,1,125,193,100,155,185,30,204,109,129,17,102,214,186,181,113,172,145,195,206,16,67,61,130,237,253,80,70,244,105,171,185,245,125,222,246,91,190,45,226,226,216,156,180,35,22,47,211,187,223,179,183,77,44,5,29,107,87,24,216,153,251,92,151,224,135,194,234,69,29,184,59,212,137,234,120,139,106,249,112,253,180,37,16,144,78,36,7,233,159,196,29,119,105,184,16,144,154,38,0,183,61,88,219,60,74,179,4,192,238,23,145,214,23,4,126,230,116,170,157,250,155,233,75,7,224,233,19,39,10,187,146,22,139,194,131,208,173,94,71,136,26,87,20,173,189,97,9,96,137,32,87,150,164,226,179,76,250,50,227,37,81,178,226,70,221,44,226,22,206,38,226,27,231,221,122,147,70,238,150,223,194,58,41,245,221,215,9,236,251,233,20,98,111,15,182,171,228,55,248,127,57,193,166,168,62,86,156,228,27,222,184,83,114,207,128,32,158,178,113,22,147,116,221,155,145,198,96,254,175,121,226,214,39,238,153,13,96,151,102,180,135,82,112,33,49,248,216,238,200,194,59,233,76,172,244,188,26,216,206,97,251,187,30,214,2,139,37,110,111,63,109,14,106,16,183,200,226,132,160,109,68,108,4,232,195,203,140,148,151,180,48,239,171,243,147,149,218,240,158,247,220,215,6,6,96,249,213,29,89,33,41,38,179,3,42,158,204,182,24,234,81,224,161,73,139,141,230,12,118,14,74,255,222,252,46,29,81,154,233,6,80,43,41,74,219,23,231,44,141,186,245,134,184,244,18,127,25,85,17,174,84,80,70,198,245,99,216,10,189,15,85,2,229,187,32,208,61,93,216,67,200,191,57,158,77,82,244,195,109,139,149,51,105,232,216,33,225,27,68,172,119,0,218,28,130,162,157,107,203,194,232,40,193,3,206,31,229,125,107,32,142,143,255,94,55,27,120,227,114,193,36,139,167,128,148,247,179,100,127,97,225,53,109,94,9,103,224,252,175,129,55,235,157,108,224,106,65,54,168,87,230,87,188,5,180,239,63,19,94,118,183,176,255,130,196,155,240,203,145,149,174,186,144,31,128,141,255,167,255,124,50,237,9,210,175,72,147,155,115,237,195,209,221,148,26,109,69,88,4,208,19,159,168,229,71,1,203,123,77,114,51,117,0,179,135,249,150,33,14,187,109,207,207,146,100,30,108,67,138,99,223,6,5,137,171,13,90,255,206,101,111,2,177,10,59,216,209,58,170,170,219,8,219,12,1,38,211,224,231,121,171,223,127,165,161,247,222,128,8,28,213,10,217,7,117,182,0,154,116,9,98,241,248,17,121,234,76,253,254,168,211,155,45,240,96,232,193,53,99,134,181,68,80,143,137,150,130,12,131,178,193,91,156,249,183,122,6,55,128,162,89,144,214,162,133,99,158,85,12,226,136,8,170,111,77,79,91,190,1,162,1,78,127,100,203,129,22,25,98,216,32,57,252,52,13,79,85,141,201,174,142,56,255,236,147,171,161,229,129,65,127,15,160,112,236,16,225,82,49,121,203,161,33,221,180,59,252,133,245,129,199,73,115,139,242,30,226,198,170,159,112,208,76,158,42,98,8,166,4,198,193,58,179,132,43,222,47,3,241,139,210,9,218,201,188,65,71,42,102,95,113,199,231,190,82,214,48,213,40,147,26,106,243,86,197,212,221,4,119,45,255,73,75,186,54,206,204,240,29,35,0,28,237,182,88,54,198,63,225,15,72,229,80,2,146,99,144,143,95,2,10,6,232,86,242,128,212,189,240,43,111,204,73,228,25,34,30,140,224,196,43,247,6,150,110,166,69,222,149,0,246,23,11,44,113,54,193,210,161,0,202,22,249,252,175,131,236,98,214,243,37,67,162,196,44,175,245,119,246,123,252,173,133,89,47,128,197,128,2,193,25,10,240,143,188,134,2,77,2,25,173,94,145,222,36,189,244,196,172,62,150,118,234,23,164,170,19,244,105,221,61,201,131,202,161,9,67,207,210,173,97,1,181,7,223,167,247,96,218,175,168,115,183,145,240,185,216,1,129,104,132,40,222,34,255,119,37,89,162,42,23,1,184,195,31,32,202,11,250,79,212,85,63,226,142,213,170,166,79,209,77,34,118,228,137,101,96,62,189,5,80,103,229,140,196,9,213,238,104,61,206,153,183,108,74,175,124,215,178,7,187,112,67,184,229,190,208,52,120,225,135,238,157,155,71,59,29,105,67,146,236,45,64,236,205,32,190,17,120,128,159,67,31,115,28,199,188,54,11,10,226,115,250,10,202,165,232,93,71,104,156,45,248,141,22,41,15,42,249,194,86,92,4,146,112,210,32,112,119,191,196,62,229,45,97,208,8,151,243,201,170,225,69,19,118,135,42,85,203,61,175,29,84,70,140,61,37,73,135,125,23,127,165,33,91,170,205,1,183,82,60,181,136,100,231,167,240,19,89,16,252,172,9,195,12,70,34,130,144,180,76,44,29,151,129,108,208,219,153,89,109,210,172,10,200,224,203,164,6,237,122,113,242,104,64,177,23,68,235,25,254,196,239,49,71,18,238,98,188,69,33,124,164,86,59,82,167,212,175,14,214,130,206,29,242,115,198,123,74,170,208,236,175,122,151,196,66,225,71,211,122,3,174,210,255,33,152,185,145,160,146,45,24,75,194,224,192,252,66,44,255,66,213,46,25,164,158,130,223,233,3,21,5,31,76,219,110,232,36,87,131,229,90,229,12,164,254,86,132,158,227,165,117,178,140,65,206,203,162,34,224,233,174,139,169,67,186,234,124,150,62,189,8,243,224,83,36,171,215,13,83,64,90,112,41,140,220,138,224,37,232,40,190,96,59,155,208,143,124,110,171,181,41,60,34,150,228,225,156,195,19,58,111,93,50,0,95,124,32,224,100,178,68,17,31,160,35,229,192,166,4,31,133,132,213,75,72,29,202,130,49,202,181,75,81,117,68,12,14,65,224,123,137,187,166,241,73,66,202,6,225,143,155,87,78,136,44,144,187,28,133,13,68,183,117,108,225,173,17,249,26,62,192,98,207,67,29,165,109,86,14,159,151,209,87,230,4,142,219,204,110,24,68,214,145,117,245,224,154,49,204,100,130,59,125,116,190,190,52,52,38,230,128,13,181,95,55,58,102,150,139,142,119,43,56,252,76,118,153,24,42,69,243,55,108,0,114,50,160,105,42,14,231,239,147,138,131,217,208,40,107,88,15,66,180,212,62,37,39,87,211,213,102,148,96,186,47,17,140,199,191,178,177,163,111,208,99,49,114,30,193,74,188,131,214,135,34,158,13,157,15,114,27,166,22,24,222,149,172,91,50,88,173,228,123,5,123,218,64,45,252,158,147,240,10,20,140,219,196,74,212,68,88,51,52,64,201,96,70,208,170,175,114,95,92,134,116,99,127,174,135,105,133,193,164,27,231,223,238,164,49,141,7,1,31,184,159,2,59,164,141,64,183,149,158,58,246,227,164,193,170,137,67,31,67,254,176,56,138,137,149,181,155,197,58,24,155,251,192,80,146,255,121,65,1,78,176,153,90,245,25,61,231,139,224,219,8,79,58,239,21,111,198,158,33,107,181,58,252,53,233,175,219,6,158,143,213,113,186,190,194,211,237,163,232,23,147,12,23,132,51,90,47,121,113,104,236,123,82,217,207,7,156,180,191,164,128,150,193,47,104,221,34,18,166,196,132,58,91,30,157,178,69,
データ完全一致!