ááťá˝ááşáŻááşáááş Google HashCode World Championship Finals 2017 áĄáá˝ááş ááźááşáááşááąááŤáááşá áááşá¸áááş Google ááž á
áŽá
ááşááąáŹ áĄááşááááŻááŽáááşáááŻááşáᏠááźáżááŹááťáŹá¸ááźááˇáş áĄááźáŽá¸ááŻáśá¸ááźááŻááşáá˝á˛ááźá
áşáááşá
áááŻá¸áááşá¸áážáŹ C++ ááᯠáĄá áááą á ááąáˇááŹáá˛áˇáááşá ááááŻááááşá¸áááşá¸á áĄááşááááŻááŽáááşááťáŹá¸ áááŻáˇáááŻááş ááąááŹáááşááąáŹááşááŻáśááťáŹá¸áĄááźáąáŹááşá¸ ááťá˝ááşááąáŹáş ááŹáážááááá˛áˇááŤá áá áşááťáááşááťáááşáážáŹááąáŹáˇ ááťá˝ááşááąáŹáˇáşáá˛áˇ áááááŻáśá¸ááŻááşá áŹááźáąáŹááşá¸ááᯠááąá¸áá˛áˇááŤáááşá ááŻáá áşáááźáŹááźáŽá¸ááąáŹááşá ááááŻááááşá¸áááşá¸ááźááŻááşáá˝á˛áááş áááŻá¸ááŻááşá ááşáááŻááşá¸áá˝ááş ááąáŤáşááŹáááşá ááťá˝ááşáŻááşá áááşáá°áážáŻááŻáśá áś ááááŻááááşá¸áááşá¸ áááşááťáž ááąáŹááşá¸áá˝ááşáááşááᯠááźááşááťááşááŤáááşá ááźáŽá¸ááźááˇáşá áŻáśááąáŹáĄáá˝ááˇáşáĄááąá¸ááźá áşáá˛áˇáááşá
áážá áşáááşááźáŹ áážááşááźááŻááşááźáŽá¸ááąáŹááş ááááşááťáŹá¸ áá˝ááşááąáŤáşááŹááźáŽá¸ áá˝ážáąááśááááşááá˛áˇáááşá
ááŻááşáážáŻááşáá˝áŹá¸áááşá áĄáá˝áąáˇáĄááźáŻáś á áážá áşáá˛áˇ ááźááŻááşáááşáá˝áąáááş ááŹáááşá ááťá˝ááşááąáŹáş ááźááŻá¸ááźááŻá¸á áŹá¸á áŹá¸ ááŻááşáá˛áˇáááşáááŻáᏠááááąáááˇáş ááŽáĄáąáŹááşááźááşáážáŻá ááťá˝ááşááąáŹáˇáşáá˛áˇ ááťážáąáŹáşáážááşá¸ááťááşáĄáŹá¸ááŻáśá¸ááᯠááťáąáŹáşáá˝ááşáá˛áˇááŤáááşá áĄáŹá¸áá áŹá¸ááááŻááááşáááş ááťá˝ááşáŻááşááĄááźáąáŹááşá¸áĄááŹááźá áşáááşááᯠááťá˝ááşáŻááşáááąáŹááąáŤááşááźáŽá¸ áááşá¸ááᯠááąáŤááşá¸áážááşááźááˇáş ááťááŻá¸áááŻááşáááşá
ááťá˝ááşáááᯠáĄáąáŹááşááźááşáážáŻáᎠáááŻáˇááąáŹááşááąá¸áá˛áˇáĄááŹááᯠááááźáŽá¸ ááťážááąááąá¸ááťááşááŤáááşá
ááąáŹááşá¸ááŤá¸ááᯠEDISON Software á ááśáˇáááŻá¸áážáŻááźááˇáş ááŹááŹááźááşáá˛áˇááŤáááşáááááŻááááşááŹááťáŹá¸áážááˇáş áááşá¸áááŻáˇá ááśáááşá Ꮰááťááşá¸ááŹááąá¸ááᯠáááŻá ááŻááşááŤá áážááˇáşá áááşááźááŻááşááąáŹáˇááşáá˛ááᯠááŽáá˝ááşáááşá .
áááşááááŻááááşá¸áááşá¸ááŹááŹá ááŹá¸ááᯠáá˝áąá¸ááťááşááá˛á
- C++ - áĄáá°á¸áĄááźáśááźáŻáááŻááŤáááşá áá°á áĄáááşá¸ááźááşáááşá STL ááźáąáŹááˇáş algorithms ááťáŹá¸ááᯠáĄááąáŹááşáĄáááşááąáŹáşááŹáá˝ááş áĄááťáááşáĄáááşá¸áááşááźáŹááŤáááşá C++ ááᯠááźááŻááşáá˝á˛áĄáŹá¸ááŻáśá¸áá˝ááş áááşááśááŤáááşá C++ áá˝ááş ááťá˝ááşáŻááşá áááááŻáśá¸ááŻááşá áŹááźáąáŹááşá¸ááᯠááąá¸áá˛áˇáááşá
- C - STL ááźáąáŹááˇáş C++ ááᯠááąáˇááŹááŤá C áááŻáááááş C++ áážáŹáááşá¸ program ááąá¸áááŻáˇáááŤáááşá
- Java áááş áážáąá¸áá˝áąá¸ááąáŹ programming language áá áşááŻááźá áşáááşá áááşá¸áá˝ááş Big Integer áĄáááşá¸áážáááąáŹáşáááşá¸ áááşá¸áááş áááˇáşáĄáŹá¸ ááťáŹá¸á á˝áŹáĄááąáŹááşáĄáá°ááźáŻáááşáááŻááşááŤá ááźááŻááşáá˝á˛áá áşááŻáá˝ááş áĄááťáááşáááˇáşáááşááťááşáážáááŤá Java ááźááˇáş áááş áááşá¸ááᯠááťáąáŹáşáá˝áŹá¸áááşááźá áşáááşá Java ááᯠááźááŻááşáá˝á˛áááŻááşá¸áá˝ááş áááşáááśááŤá
áááşáážáŹááąáˇááťááˇáşáááŻááşááá˛á
ááťá˝ááşááąáŹáşáĄááźáśááźáŻáááşáážáŹ
ááááŚá¸á á˝áŹ áááşá áĄááźáąááś áĄáááááŹááᯠááźážááˇáşáááşáááş áááŻáĄááşááŤáááşá
ááŹááŹá ááŹá¸á syntax áááŻáĄááŻáśá¸ááźáŻááźáŽá¸áááşáážááˇáşá ááťáąáŹáşáá˝ážáŹá¸áááşááźáżááŹáĄááťááŻáˇáážááááşá áĄááąáˇáĄááťááˇáşáááŻáĄááşááąáŹ áááŻá¸áážááşá¸ááąáŹááźáżááŹááťáŹá¸ááźááˇáş á áááşááŤá á¤áĄáááˇáşáá˝ááşá áĄááááĄááŹáážáŹ áááşá programming style ááᯠááŻáśá¸ááźááşáááşááźá áşáááşá ááąááŹáá˝ááşáá˝áą áĄááťáŹá¸ááźáŽá¸áá˛áˇ ááŻááşááąá¸ááᏠááźááŻááşáᏠááźá áşááąáŹááşá¸ ááźá áşáááŻááşáááşá áááşáááş âifâ áá˛áˇáááŻáˇ áá˝ááşá¸á áĽáşááťáŹá¸ááᯠááťááşá¸ááźáąáŹááşá¸áá áşááŻáááşá¸áá˝ááş ááŹá¸áááŻááşáááşá áááŻáˇáááŻááş áááşá¸áááŻáˇááᯠááŽá¸ááźáŹá¸ááťááşá¸ááźáąáŹááşá¸ááťáŹá¸áá˝ááş áááˇáşááŹá¸áááŻááşáááşá
áááşá¸áá˛áˇá áááŻááşáááŻáˇáááŻáˇ áááşá¸áá˛áˇ programming style áááŻáážáŹááááşá
áááşá¸áááŻáážáŹáá˝áąááąáŹáĄá፠áĄááźáąááśáááąáŹáááŹá¸áážá áşááŻááᯠááááááŤ-
- áááˇáşááŻááşááᯠáĄááąáŹááşáĄáááşááąáŹáşáááş áá˝ááşáá°áááˇáşáááşá áááşááážáááŹáááˇáşááźáąáážááşá¸ááťááşááᯠáĄááąáŹááşáĄáááşááąáŹáşáááş á áááşááťááşá¸ááŹá áąááááşá áĄáááşááźáąáŹááşáˇ? áĄáááşááźáąáŹááˇáşáááŻááąáŹáş ááźááŻááşáá˝á˛áá áşááŻáĄáá˝ááşá¸á áááşáááŻááťááşááąáŹ ááąáŹááşááŻáśá¸áĄááŹáážáŹ áááˇáşááŻááşáá˝ááş ááťáąáŹááşááŻáśá¸áá˝áŹá¸ááźááşá¸áááşááźá áşáááşá ááŻááşááĄááąáŹááşáĄáááşááąáŹáşáážáŻááᯠáááŻá¸áážááşá¸áĄáąáŹááşááźáŻááŻááşáááşá¸ááᯠáĄááźáąáážáŹáááş 5 áááá áşáĄááťáááşááźáŻááşá¸ááźááşá¸áááş áĄááᯠ10 áááá áşááᯠááŻáśá¸á á˝á˛ááźááşá¸áááş áĄááźá˛áááşá¸áááŻááąáŹááşá¸ááŤáááşá
- áááˇáşááŻááşááᯠáááşááá˝ááşáá°á áąááááşá ááŻááşáááŻáááşáááşáá˝ááşáá°ááąáŹáĄááŤá áĄáážáŹá¸áážáŹáááşáá˝ááşáá°áááşá áĄá˛ááŤááᯠáááşáááŻááşááźááŤá ááŻáˇ- áááŻá¸ááąáŹááşáá˝áąá áĄááťáááşáááŻááşá¸ ááźá áşáááşááŤáááşá áááşá¸ 10 áááá áşáá˛ááťááşááąáŹáˇáá˛áˇ ááśá áŹá¸ááťááşá áááşá¸áĄáážáŹá¸ááᯠááá˝áąáˇáááŻááşáá°á¸áááŻáᏠáááşá¸ááááŹá¸á ááŻááşááŤáááşá ááŽáĄááźáąáĄááąáá˝áąááᯠáážáąáŹááşáážáŹá¸áááŻáˇá áážááşá¸áážááşá¸áááşá¸áááşá¸ ááŻááşááąá¸ááŤá áááşá¸ááᯠá áááşáĄáážáŹá¸áážáŹááźáŽá¸áááşáážááˇáşá ááŻááşáááş áááŹáááťááźáŽá¸ ááŹá¸áááşááá˝ááşáá°áá˝áŹá¸áááşááźá áşáááşá
áááˇáşáá˛áˇ áá˝áśáˇááźááŻá¸áááŻá¸áááşáážáŻá á˝ááşá¸áááşááᯠáááşáááŻááźážááˇáşáááşááá˛á
ááąáˇááťááˇáşááŤá ááąáˇááťááˇáşááŤá ááąáˇááťááˇáşááŤá áááááŻáśá¸ ááźáąáážááşá¸áááŻááşááąáŹ ááźáżáᏠáá
á ááᯠááťáąáŹáşááźááşááźáŽá¸ ááŻááşááąáŹááşáááş áĄááźáśááźáŻáááŻááŤáááşá
"ááŽááźáżááŹá ááŤáˇáĄáá˝ááş áĄáááşá¸áááşáá˛áááşá ááąáŹááşáá áşáᯠááźáąáážááşá¸áááŻáˇ ááźááŻá¸á áŹá¸áááş" áᯠáááźáąáŹááŤáážááˇáşá ááŽáááŻáᲠáĄáážáŻáśá¸áááŹá¸áááŻáˇ áá°ááááşá
á áŹáá˝ááşáá áşáá˝ááşáážááˇáş áá˛ááśáá áşááťáąáŹááşá¸áá°ááŤá á ááşá¸á áŹá¸ááźááˇáşááŤá áĄááźáąáá áşááŻááᯠáááşáážáŹáá˝áąáˇáááŻááşáááşá ááźá áşáááŻááşáááşáááŻááşá áĄáááşá¸ááŻáśá¸áĄáŹá¸ááźááˇáşá áááşáááş algorithmic áá˝áąá¸ááąáŤáşáážáŻááᯠáá˝áśáˇááźááŻá¸ááŹááááˇáşáááşá áá áşááŹááŽáĄáá˝ááşá¸ ááźáąáážááşá¸ááťááşáááážááááŻááşááŤá áááŻáááş áááŻáˇáááŻááş ááąáŹááşá¸ááŤá¸ááťáŹá¸áá˝ááş áĄáááşáááˇáşááŻááşááŹá¸ááąáŹ ááźáąáážááşá¸ááťááşááᯠáážáŹáá˝áąááŤá
ááŽáááşá¸áááşá¸áá˛áˇ áááşááŹáĄáąáŹááşááźááşááá˛á ááŻááşááŻáśá¸ááźáŽá¸ áááˇáşá áááşáá°á¸ááťáŹá¸ááᯠááźááşááźááşáááşáááşáĄááąáŹááşáĄáááşááąáŹáşáááş ááąáˇááŹááŤá áážáąá¸áááŻá¸ááźáżááŹááťáŹá¸áážááˇáş áĄááşááááŻááŽáááşááťáŹá¸ááᯠááąáˇááŹááŤá
ááŻááááĄááąááźááˇáşá áááşáááş algorithms áážááˇáş data structures áááŻááťá˝ááşá¸ááťááşááááşá
áĄáááşáĄáąáŹááş ááťááşá¸áááşáááşá¸ááᯠáááŻááşááŹááŤá áááşá¸ááťážáąáŹááşááážááşá¸ááááᲠááźáąá¸ááąáááŹá¸á ááážá áááŻááşááŹááąáŹáĄáŻááşááźá áşááážááᲠáááŻá¸ááťážáąáŹáşáááŻááşááᯠááąáŹááşáááŻááşááŤáááŹá¸á áááźááşáá°á¸á
áááşáá°áážáŻáááşá¸ááźáąáŹááşá¸áá áşááťážáąáŹááş ááźáąáážááşá¸ááťáŹá¸ááᯠááťá áşááťá°áážáŻáááááŤá áĄá˛ááŤáá˝áąááᯠááťá áşááťá°áážáŻáááş áĄááááᏠáá˝áŹáááťááşáá˝áą ááťááşááąááááˇáşáááşá áĄááťáááşááźáŹááŹááŹáá˛áˇáĄááťáž áááŻáááŻá¸ááŹáááşá
áĄááźáąááś áĄááşááááŻááŽáááşááťáŹá¸áážááˇáş ááąááŹáá˝á˛áˇá ááşá¸ááŻáśááťáŹá¸ááźááˇáş á áááşááŤá
á
áááşáááşáááşáá˛áááşá ááŹááᯠáĄáááşááąáˇááŹááážááşá¸ááááááŻáˇ ááźá
áşáááŻááşáááşá áĄá˛ááŤááźáąáŹááşáˇ
áá˝ááşáá˛áˇááźáżááŹáá˝áąááᯠááźáąáážááşá¸áááŻáˇ áĄááŻááşááŻááşáááş áááşááąáŹáˇááž áááŻá¸áááşáážáŹáááŻááşáá°á¸á
áááşáááááąáŹáĄááŹááᯠááŹá¸áááşáááş áĄááááąáŹááşááŻáśá¸áááşá¸áááşá¸áážáŹ áááşáá˝áąáˇáá˝ááş áá˝áąáˇááźáŻáśááśá áŹá¸áááşááźá áşáááşá ááŤáᲠááááŹáááşá á áááşááąáŤáşáážáŻáážááá˛áˇ áĄááŻááşáá áşááŻááᯠáá˝áąá¸ááťááşááźááşá¸áĄáŹá¸ááźááˇáş áĄáááşá áááźáŹá¸áá°á¸áá˛áˇ áááşá¸áááŹáĄáá áşáá˝áą áĄááťáŹá¸ááźáŽá¸ááᯠááąáˇááŹáá˛áˇááŤáááşá
áááşááŻááşááąáŹááşááąáááˇáş ááááááźáąáŹááşááźáżááŹáááŻááşá¸áááş áááˇáşáĄáŹá¸ áĄáá áşáĄáááşá¸áá áşááŻáᯠáááşááąá¸áááˇáşáááşá ááźáżááŹáá˝áąááᯠáá˝áąá¸ááťááşáá˛áˇáĄá፠áááŻáááááŹá¸ááŤá áááŻáááŻáááşáá˛ááąáŹááźáżááŹááťáŹá¸áááŻáá˝áąá¸ááťááşááŤá
áááşáááş SPOJ ááž á¤ááźáżááŹááąáŤááşá¸ 250 ááᯠááźáŽá¸áááşáážááˇáşá áááşáááş áĄáŹá¸áá áŹá¸ááááŻááááşá¸áááşá¸á áááşááĄááźáąáŹááşá¸áĄááŹááťáŹá¸ááᯠáĄááźáąááśááŹá¸áááşááŹáááşááźá áşáááşá áĄááźáąááś áĄááşááááŻááŽáááşááťáŹá¸á ááąáŹááşáá˝ááşáážá ááŻáášááááąáááᯠáááşáá˛á á˝áŹ ááŹá¸áááşááźááşá¸ááźááˇáşá áĄáááˇáşááźááˇáş áĄááşááááŻááŽáááşááťáŹá¸áááş áážáŻááşáá˝áąá¸áážáŻáááşá¸ááŤá¸ááŻáśááááşá á¤áááşá¸ááźááˇáş áááşáááş áááşá áĄáááááŹááᯠáĄááťáŹá¸ááŻáśá¸ áĄááŻáśá¸ááťáááŻááşáááşá
áĄááááĄááźáąáŹááşá¸áĄááŹáá áşááŻá áŽááᯠáááŻáááŻáááşáážááŻááşá¸á á˝áŹ á á°á¸á ááşá¸ááŤá
áĄáá
áşáĄáááşá¸áá˝áąááᯠáááşáá°ááźáŽá¸áááş áĄááááᏠááááŻááşááŹáá°á¸áááŻáááş áĄááŹáĄáŹá¸ááŻáśá¸ááᯠááźááşááźááş ááąáˇáá˝áŹá¸ááŤááááˇáşáááşá
áĄááşááááŻááŽáááşáĄáá
áşáá
áşááŻááᯠááąáˇááŹááźáŽá¸ááąáŹááş áááşáá˝áąáˇáá˝ááş áĄááŻáśá¸ááźáŻáááş ááťá˝ááşáŻááşáĄááźáśááźáŻáááŻááŤáááşá áĄááŻááş 2-3 ááŻááźááˇáş ááŻááşááąáŹááşááŤá SPOJ áážá algorithm tag áááŻáážáŹááŤá áááŻááąááŹáá˝ááş ááźáąáážááşá¸ááẠᤠalgorithm áááŻáĄááşáááˇáş ááźáżááŹááťáŹá¸ááᯠáááşáá˝áąáˇááááˇáşáááşá ááŽááźáżááŹáá˝áąááᯠáĄáááşááźáąáážááşá¸ááŤá
Master Dynamic Programming áááş áááˇáşáĄáŹá¸ áĄáąáŹááşáá˝á˛áááŻáˇáááŻáˇááąáŹááşááąá¸ááąáŹááźáąáŹááˇáşááźá
áşáááşá
ááťá˝ááşááąáŹáˇáşáĄáá˝áąáˇáĄááźáŻáśáĄá ááźááŻááşáá˝á˛áááŻááşá¸áá˝ááş áĄáááşá¸ááŻáśá¸ ááźáżááŹáá
áşááŻáážááááşá
ááźáŽá¸ááąáŹáˇ ááŤá ááąáŹááşá¸áááşá áĄáááşááźáąáŹááˇáşáááŻááąáŹáş áááşáááş Dynamic Programming áááŻááŹá¸áááşááŤá áááşáĄáááŻááşááááşááźá áşáááşá
dynamic programming ááᯠááźááŻááşáááşá ááŤá ááťá˝ááşááąáŹáş áĄááźááŻááşááŻáśá¸ ááąáŤááşá¸á
ááşááŤá áááŻááşá¸ááá
áşááááŻááááşááąá¸áá˝á˛ááźááşá¸áááťážááŻáˇáážááşááťááşáážáŹ ááąááĄáááŻááşáááŻááşáᲠááášááŹáá
áşáážááşá¸ááž áĄááąáŹááşá¸ááŻáśá¸áá˝áąá¸ááťááşáážáŻááťáŹá¸ááźáŻááŻááşáááşááźá
áşáááşá ááźáżááŹááᯠáááŻá¸áážááşá¸ááąáŹ ááźáżááŹáá˝á˛ááťáŹá¸áĄááźá
áşáááŻáˇ áá˝á˛ááŻááşááááşá á¤ááźáżááŹááťáŹá¸áá˛ááž áá
áşááŻá
áŽááᯠáá
áşááźáááşáᏠááźáąáážááşá¸ááŤá áááŻáˇááąáŹááş ááźáąáážááşá¸ááŹá¸ááąáŹ ááźáżááŹáá˝á˛ááťáŹá¸ááᯠááąáŤááşá¸á
ááşááŹá¸áááˇáş áĄááźáąáá
áşááŻááᯠáááşááŽá¸ááŤá
áááąáŹáááŹá¸áĄáá
áşááťáŹá¸ááᯠááąáˇááŹááąá
ááşáá˝ááş á
á
áşááąá¸ááŤá
áĄááŻááşááźááŻá¸á áŹá¸
áážá áşááąáŤááşá¸ááťáŹá¸á á˝áŹ ááąáˇááťááˇáşáážáŻááážááᲠáĄááŻááśáá áşááźááŻááşáá˝á˛áážáŹ áĄáááŻááşááá˛áˇ áĄáŹá¸áá áŹá¸áááŹá¸áá˝áąááᯠááźáŹá¸áá°á¸ááŤáááŹá¸á ááŤáááŻááşáá°á¸
áážá áşá ááşáážá áşáááŻááşá¸ áá˝ááşááťá°ááŹáĄááŻááśáá áşááźááŻááşáá˝á˛áĄáá˝ááş ááźááşáááşáážáŻááťáŹá¸ááᯠá ááşáááşááŹááá˝ááş á áááşáá˛áˇááźáŽá¸ á§ááźáŽááá˝ááş ááźáŽá¸ááŻáśá¸áá˛áˇáááşá
áᎠ8 ááĄáá˝ááş ááąáˇáááŻááşá¸ á፠5 ááŹáᎠááąáˇááťááˇáşáááşá
ááŻááşáááşá áᎠ5 ááŹááŽááᯠalgorithmic ááźáżááŹáá˝áąáááŻáᲠááźáąáážááşá¸áá˛áˇáááşá á ááŹááŽáááą áá ááŹááŽáĄáá ááąáˇááťááˇáşáá˛áˇáá˛áˇ ááąáˇáááşáá˝áąááᯠáááááááááşá áĄáááşááźáąáŹááşáˇ? ááźááŻááşáááşáááŻááąáŹáˇá ááąáˇáááŻááşá¸ ááťáąáŹááşá¸áááą áĄáááşááźááşááąáŹááşááąáŹáˇ áĄáááşáááşá¸áᲠáááˇáşáááˇáşáááşááźáŽá¸ áá˝ááşááźá°ááŹáááŻááşááźáŽá¸ ááźáżááŹáĄáá áşáá áşááŻááᯠá ááźáŽá¸ áá˝á˛ááźááşá¸á áááşááźáŹáááşá ááŤáážáááŻááş ááŽááźáżááŹáááŻááźáąáážááşá¸áááŻáˇ ááááŹá¸áááŻáˇáááŻáĄááşáá˛áˇ algorithm áĄáá áşáá áşááŻááᯠáááşáá°ááąááŤáááşá
áááşá¸áĄáááŻááşáááťááşáááş ááŽáááŻáá˛ááŻááşááááşá ááźáżááŹáá áşááŻááᯠáá˝áąá¸ááźáŽá¸ áááşáááŻááşááŤá á á°ááŤááŹá¸áááşáááŻáˇ áááşá¸ááťážáąáŹááşá ááş áááŻáˇáááŻááş ááŹá¸ááąáŹááşá¸ááąá ááş á ááşá¸á áŹá¸ááŤá
áááşáĄáááşááąáŹáĄá፠áááˇáşáŚá¸áážáąáŹááşáááş áááŻááąáˇáá˝ááş á
áŻááąáŹááşá¸ááŹá¸ááąáŹ áĄááťááşáĄáááşááťáŹá¸ááᯠáĄáá˝á˛áĄááźá˛ááźá
áşá
áąááźáąáŹááşá¸ áááşááááŤáááŹá¸á áá°áááş á
áŹáĄáŻááşá
ááşááąáŤáşáá˝ááş áĄáášáááŹá
ááşáĄáááŻááş á
áŹáĄáŻááşááťáŹá¸ááᯠáááşá¸á
áŽááąááŻáśááááşá áĄááźáąááśáĄáŹá¸ááźááˇáşááąáŹáˇ áááˇáşáŚá¸áážáąáŹááşá áááşáááşáááŻááşááąááá˛áˇ ááźáżááŹááťááŻá¸á
áŻáśááᯠá
ááşá¸á
áŹá¸ááŤáááşá
ááŤááᯠááťá˝ááşá¸ááťááşá á˝áŹ ááŻáśá¸áááŻááşááŤáááşá áĄáááşááŹááááşáááşáážáŹ áááşáá˛áá˛áˇááŻá ášááŹáá áşááŻááşááᯠáááşááźáŽá¸ ááźáąáážááşá¸áááŻáˇ áááŻáĄááşááŹáá˝áąááᯠáážááşááŹá¸ááŹá¸ááŤá á¤áĄáááˇáşáá˝ááşá áááşáááŻááşáááŻááşááźáąáážááşá¸ááťááşáááŻáážáŹáá˝áąáááşááááŻáĄááşááŤá áĄáááşááŹáááşáááşá áááˇáşáŚá¸áážáąáŹááşá ááŽááźáżááŹááᯠá áááşááŻááşááąáŹááşááŤááááˇáşáááşá áááşáááŻá¸ááŹááąáŹáĄááŤáá˝ááş áááşáááş áĄáááşááťáąáŹáşááąá ááş ááźáąáážááşá¸ááťááşááᯠáá˝áąáˇáážáááźáąáŹááşá¸ áĄáśáˇááźáá˝áŹá¸ááááˇáşáááşá
áááşáááŻááşáááŻááşááźááŻá¸á áŹá¸ááŤá áážáąáŹáşáááŹáááŻááŤáá˛á
ááťá˝ááşááąáŹáş ááŽááŽáááŻáááąáŹáˇááşáá áşááŻááᯠáááşááŽá¸áá˛áˇáááşá
á¤á
áŹáááŻááşáááŻáááş áĄáŹá¸áá
áŹá¸áĄá
áŽáĄá
ááşáážááˇáş ááááşáááŻááşááŤá áĄáááşáážá
áşáááşááťáąáŹáşááźáŽá¸ ááášááŹááźáŽá¸ááᯠááŤáááşáááŻááźááşáá˛áááŻáˇ áá˝áąá¸ááąáááşáááŻáááş á
ááşá¸ááźááˇáşá
áąááťááşááŤáááşá
á áááşááťááť áĄááŻááşááŻááşááŤá
ááŤá áĄáąáŹááşááźááşáážáŻáá˛áˇ ááťážááŻáˇáážááşááťááşááŤá áááşá¸áááşáážááşá¸ááťááşáá˝áąáááŻáááşá
ááŤáááŻáˇá áá°áá˝áąááźá
áşááźáŽá¸ ááŤáááŻáˇááźááŻááşáááşá
áĄááťáááşáá˝á˛ááźááşá¸ááᯠáááşáááŻáĄáááŻááşáá°ááá˛á
áááˇáşáááŻááşáááş áááşá¸áááŻááşááŹá¸ááŤá áĄáá áşáĄáááşá¸áá˝áąááᯠáááşáá°áááŻááşáá˛áˇ á áááşáááşá áŹá¸á ááŹááąáŹááşá¸áá˛áˇ ááźáżááŹáá˝áąááᯠáĄááźá˛áá˝áąáˇááŤááááˇáşáááş (áĄáááşáážáŹ ááąáŹáşááźáá˛áˇáá˛áˇ áĄáááşá¸áĄááźá áşáá˝áąááᯠááźááˇáşááŤ)á ááŤááąáááˇáş ááŽááźáżááŹáá˝áąááᯠáááşááŻáśáááşáááŻááşáᲠááźáąáážááşá¸áááŻáˇ áááŻááŤáááşá
ááŤááźáąáŹááˇáş áĄááťáááşáá˝á˛ááźááşá¸ááᯠááŤáááşáááŻááťáąáŹáşáá˝ážáŹá¸ááᲠáááŻááŹááŤá á áášáá°ááźáášáááááşááᯠá áááşáá˛áˇááźáŽá¸ ááźáąáážááşá¸áááŻááąáŹ ááźáżááŹááťáŹá¸ááźááˇáş ááąáˇáááşáááŻááşá¸ááᯠááźááˇáşáá˝ááşá¸áá˛áˇáááşá ááźáżááŹáá˝áąááᯠáážá áşáááşááźááŻááźáŽá¸ áĄááźá˛ááźááˇáşáááşá ááŤááźáąáŹááˇáş ááąáŹááşáááşáá˝áąáážáŹ áááŻááˇáşáĄááťáááşááᯠáááşáááŻá áŽááśáááˇáşáá˝á˛ááááşáááŻáᏠáááááşá
ááŤááźáąáŹááˇáş áĄááźá˛áááşá¸ á
áááşáážáŻááşáážáŹá¸ááąáá˛áˇáááşá ááźáášáááááşáá˝ááş ááąáŹááşáááşááťáŹá¸ááᯠááźááˇáşáááş ááźáżááŹáĄááťááŻáˇááᯠááźáąáážááşá¸áááş áááŻáĄááşááŤáááşá ááźáąáážááşá¸ááźáŽá¸ááŹá¸ ááźáżááŹáá˝áąááᯠááźááşááťáąáŹáşááᏠáĄáááşá¸ááąáŹááşá¸ááŤáááşá áááşá¸áááşá¸ááźááŻááşááŹááŤáááááşá
áááşááááŻááşáááŻááşá áŹáá˝ááşááźáášáááááşáááŻááá°ááŤá ááááşááźááşáĄáá˝ááş ááąáˇáá˝áŹá¸áááˇáş áĄááźáŹá¸ááŻááşá ááŹá áŹáááşá¸ááᯠáááˇáşááŻááşá¸áá˝ááş ááááşááŽá¸ááŤáážááˇáşá
ááááąáŹááşá á˝áŹ áĄáážáŹá¸áážáŹáááşá¸
áááąáŹáşáááşáážááşáááşáá
áşááąáŹááşááźá
áşáááŻááŤáááŹá¸á ááŻááşááŤáá áááşáááş "áááşáá
áááşáá˛áá˝ááş áááşá¸ááᯠáĄáážáŹá¸áážáŹáááş" áááŻáĄááşááŤáááşá
áááşá¸áááş debugger ááŻáśá¸áááááŻáĄááşááąáŹááźáąáŹááˇáş ááťá˝ááşááąáŹáşááááąáŹ áĄááááąáŹááşááŻáśá¸ debugging áááşá¸áááŹááźá
áşáááşá áááˇáşáŚá¸áážáąáŹááşáááş ááŻááşáĄáááŻááşá¸áĄáááşááťáŹá¸á
á˝áŹááᯠáá
áşááźááŻááşáááş á
á
áşááąá¸ááźáŽá¸ ááŻááşáážááˇáş áážááŻááşá¸áážááşááŤá áááŻáááŻááťááşááźááˇáşááąáŹ ááźáŻáśááŻáśááŻáśá¸áááşááťááşááᯠááąá¸ááŤáááşá
áááşáááş á á áşááŻáááşáá áŹá¸ááąáŹ áááááşááŹá ááŹáá áşáŚá¸áážááˇáş áážááŻááşá¸áážááşáááŻááşááźáŽá¸ áážáąáˇáááŻáˇ 3 áážááşá¸áá˝áŹá¸áááşáᯠáááşááźááşáááŻááşáááşá
ááťá˝ááşáŻááşáááş á¤áááşá¸áááŹááᯠááťá˝ááşáŻááşá áááŚá¸ááŹáá˝ááşááąá¸áááŻááşá¸áĄááźá áşáᏠáĄááŻáśá¸ááźáŻááŤáááşá ááźáŽá¸áááş ááááˇáş debugger ááᯠááŻáśá¸ááŤáááşá
áááˇáşáŚá¸ááąáŤááşá¸áá˝ááş áĄáážáŹá¸áážáŹáááşá¸ááᯠááąáˇááŹáááşá ááąáˇááťááˇáşáááş áááŻáĄááşáááşá áááşáááş ááźáżááŹáá áşááŻá áĄááźáąáá áşááŻááᯠáĄáááşááźáŻááźáŽá¸ "áážáŹá¸ááąáŹáĄááźáą" áááŻáááąáŹáĄá፠áĄáážáŹá¸áážáŹááźááşáááˇáşáááŻááşááŽáááŻáˇ áááˇáşáááˇáşááá˝áŹá¸ááŤáážááˇáşá ááŻááşááᯠááźááşáááşááźáŽá¸ á ááşá¸á áŹá¸ááźááˇáşááŤ- "ááŽá áŹááźáąáŹááşá¸áážáŹ ááŹááźá áşááąáá˛"á "ááŽáážáŹáááŻáááŻáˇáážááááş" á ááááŻááááşááᯠáááşáááŻáĄááťááŻá¸áááşááąáŹááşáá˛"á "á ááşáááŻááşá¸á áá˝ááşáá˛áˇáĄááŤá áááşááźáŽá¸áááşáááŻá¸á áááşááąáŹááşáá˛á"
á¤áááşá¸ááźááˇáş áááşáááŻááşáááŻááşá ááşá¸á áŹá¸ááŤá áĄááťáááşááźáŹááŹáááşáážááˇáşáĄááťážá áááşáááş ááŻááşááąá¸áááş áááşáá°ááźáŽá¸ áááşá¸ááᯠááťááşááźááşá¸ debug ááŻááşáááŻááşáááşá
á áŹááąá¸áá°áážááşáˇ áááşáááş.
Andrei Margeloiu áááş á
á˝ááˇáşáŚá¸ááŽáá˝ááşáážáŻá á
á˝ááˇáşáŚá¸ááŽáá˝ááşáážáŻááťáŹá¸áážááˇáş ááźááşááá˝ááş á
áááşáááşá
áŹá¸áážáŻáážáááąáŹ ááááŻááááşááŹáá
áşáŚá¸ááźá
áşáááşá áá°áˇááᯠáááşáá˝ááşáááŻáˇááááşá
ááŹááŹááźááş- Diana Sheremyeva
source: www.habr.com