TopCoder�Ő��E�Ɠn�荇�����{IBM�ٍ̈ˁ\�\�Γ��E�l

�������Ȃ����������i���邢�̓g���b�L�[�ȁj�R�[�h����ь������E��m�肽���Ɗ肤�Ȃ炻���TopCoder�ɎQ�����邱�Ƃŗe�ՂɎ������邱�Ƃ��ł���B����TopCoder�ɎQ�����Ă��鐔���Ȃ����{�l�ŁA���U�v���O���}�[��錾����l����TopCoder�̖��͂𕷂����B

» 2007�N03��01�� 08��00�� ���J
[�����׎O�CITmedia]

�@���Ƀn�b�J�[�ƌĂ΂��l�͐��������݂���ǁA���퐶���ɂ����Ă킽�����������������l�����̃R�[�f�B���O��ڂ̓�����ɂ���@��͂܂�ł���B

�@�������A�������i���邢�̓g���b�L�[�ȁj�R�[�h����ь������E��m�肽���Ɗ肤�Ȃ炻��͗e�ՂɎ������邱�Ƃ��ł���B�����ɂ͍��ЁA�N��A�ߋ��̉h���c�c���̂�����������̈Ӗ��������Ȃ��A�R�[�h�݂̂��x�z���鐢�E���L�����Ă���B

�@����Ȑ��E��1�‚Ƃ���TopCoder����������B���E������g�b�v���x���̃v���O���}�[���Q������v���O���~���O�R���e�X�g�Ƃ��Ēm��l���m��TopCoder�B���{�ł͂��܂ЂƂ’m���x�͒Ⴂ���A�C�O�ł���΂��̏�ʂɃ����N�C�����Ă���Ƃ��������ŁA�N�������̎^��ɂ��܂Ȃ��قǂ̐l�C�𔎂��A�v���O���}�[������̎��͂��A�s�[�����邽�߂̏�Ƃ��Ēm���Ă���B

�@�R���e�X�g�͂��ׂĉp��ōs���邱�Ƃ��e�����Ă��A���ʂ̃����L���O��30�ʑO�ゾ�������{�̃����L���O�́A�ŋ߂ł�17�ʑO��܂ŏ㏸���Ă���B����TopCoder�ɎQ�����Ă��鐔���Ȃ����{�l�ŁA���U�v���O���}�[��錾������{�A�C�E�r�[�E�G���i���{IBM�j�\�t�g�E�F�A���ƕ��̈Γ��E�l����TopCoder�̖��͂𕷂����B

ΓEl ���₩�ȊO������͑z�����‚��Ȃ��قǃR�[�h�ւ̂�������������Γ���

�@�Γ����́A���s�̑�w�ɍݐЂ��A�d�q�H�w�ƒm�\���w�ȂǃR���s���[�^�T�C�G���X���w�ԖT��APerl�Ȃǂ̌���ɐe���񂾁B�uJava��C++�ɂ��G�ꂽ���A�l�I�ɂ�Perl�̂������ō��̎���������v�Ǝ��g�𕪐͂��邪�A�u����Python�B�����ȕ��X�����g�̃u���O�ȂǂŁwPython�͂����x�Ə����Ă����̂��e�����Ă��܂����APerl���Ǝ����̏������R�[�h�ł��玩���ŗ����ł��Ȃ��Ȃ邱�Ƃ�����܂����̂Łi�΁j�BPython��m���Ă����Perl�ŏ������Ƃ͂قƂ�ǂȂ��Ȃ�܂����v�Ƃ��b���B

�@��w�@���ƌ�͓��{IBM�֓��ЁB�ŏ��̔z���͉Ԍ`�Ƃ���������Z�T�[�r�X�֘A�̕������������A���Ȃ����ă��C���t���[�������̃V�X�e���C���e�O���[�g����Ƃ���d���������Ɍ����Ă��Ȃ��̂ł͂Ɗ�����悤�ɂȂ����Ƃ����B�uCOBOL�̂悤�Ȍ��ꂪ����̂��ƁA�y���J���`���[�V���b�N���o����قǂł����B�d���Ƃ��Ă͂‚܂�Ȃ������v

�@�Y�񂾌��ʁA1�N���قǂ�������A�Г��̐l�ތ���Ń\�t�g�E�F�A���ƕ��Ɉٓ������BWebSphere��Eclipse�Ȃ�Java�֘A�Z�p�𑽗p���钆�A�uPython�Ȃ�����Ɗy�ɏ�����̂Ɂv�Ƃ͓��S�v���‚‚��A���X�̋Ɩ������Ȃ��Ă������B���̌�A��IBM���[���C�������ɂāA�uSpecJAppServer2002�v�̊J���ɏ]�����邱�ƂɂȂ����ہAApache Geronimo�Ƀt���^�C���ł������Z�p�҂ɏo��������ƂȂǂ�����Apache Geronimo�ɐ[���������悤�ɂȂ�A�����ł�Geronimo�Ɋւ���u���𑽐��s���Ȃǂ͂��ڂɂ͏��������̓��X���߂����Ă���悤�Ɍ������B

�@����������́A�Γ����̐S�̒�����v���O���~���O�ɑ΂����M�������������킯�ł͂Ȃ������B

Boys Be Ambitious�I

�@��w����Ɣ�ׂĎ��g�̃X�L�����ǂ��ς�������ɂ‚��āA�u�w�K�~���͍��̕��������ł��B���̂���ɔ�ׂĂ��܂��܂Ȍ���ɐG�ꂽ���ƂŁA�����̍l�������L���ɂȂ����悤�ɂ͎v���܂��v�Ƙb���B���ʁA���̊w���������܂����Ƃ����B�u�펞�ڑ��‹���������O�ŁATopCoder�̂悤�Ȏ����̗͂��C�y�Ɏ��������p�ӂ���Ă���B���������ɂ����������ʂ��Đ��E�̕ǂ𑁂߂Ɉӎ�����΁A�O���[�o���ȕ����Ɉӎ��������ł��傤�v

�����߂�1��

�@�v���O���~���O���w�Ԃɂ������ĎQ�l�ɂȂ鏑�Ђ������Ăق����Ǝ��₷��Ɓu�g�����h��ǂ����߂Č���I�Ȃ��̂�ǂ݂�������́A�ÓT�A�������͖����ƌĂ΂��悤�Ȃ��̂���������ǂނ̂��悢�Ǝv���܂��v�Ƃ��A��Ƃ��āA�}�T�`���[�Z�b�c�H�ȑ�w�iMIT�j�Ȃǂł��e�L�X�g�Ƃ��ėp�����Ă���wStructure and Interpretation of Computer Programs�x�i�v�Z�@�v���O�����̍\���Ɖ��߁j�Ȃǂ�������B


TopCoder�ŔR���オ��v���O���}�[��

�@�R�[�h�ւ̖O���Ȃ��֐S�����ˆΓ������ŋߖڂ��������̂��A�O�q��TopCoder�������B���ۂɂ�TopCoder�̃V�X�e�����g���AGoogle����Â��Ă���v���O���~���O�R���e�X�g�uGoogle CodeJam�v�������ɂƂ��Ă̐V���Ȑ��E�ւ̓�����ƂȂ����B

�@TopCoder�ł̓A���S���Y���}�b�`��f�U�C���}�b�`�A�f�x���b�v�����g�}�b�`�ȂNJ�‚��̃v���O���~���O�R���e�X�g���p�ӂ���Ă��邪�A�Γ������Q�����Ă���̂̓A���S���Y���}�b�`�B���T�̂悤�ɃI�����C���Ŏ��{����Ă���A�N�ł��Q���”\���B

TopCoder �uTopCoder�v�̃g�b�v��ʁB���łɓo�^�҂�10���l�𒴂��Ă���

�@�A���S���Y���}�b�`�ł́A3�‚̐ݖ�𐧌�����75���ʼn����A5���̋x�e�̌�A�`�������W�^�C���ƌĂ΂�邨�݂��̃o�O�����‚��������Ԃ��p�ӂ���Ă���B���p�”\�Ȍ���́AJava�AC++�AC#�AVB��4��ނŁA�ŋ߂ł�Perl��������b�����������A�����̍��ɂ��e�����������˂Ȃ��Ƃ������z�����猻�݂ł�4��ނ̂܂܂ƂȂ��Ă���B�uPython�Ȃ�����Ƃ��܂��R�[�f�B���O�ł���̂ɁA�Ǝv�����Ƃ͂悭����܂��B�킽���Ɍ��炸�APython�𗘗p�”\�ɂ��Ăق����Ƃ������͌��\����悤�ł��v�i�Γ����j

�@�Q���҂͖�20�����‚ɃO���[�s���O����Ă���A�`�������W�^�C���ł͓����O���[�v���̎Q���҂���o�����R�[�h�����邱�Ƃ��ł���B�R�[�h�Ƀo�O�����肻���Ȃ炻�̃o�O��U������悤�ȃR�[�h�������A�g���āh����ƃ|�C���g���t�������B�����āA�`�������W�^�C���Ō��Ă���邱�Ƃ��Ȃ������R�[�h�ɂ̓V�X�e���e�X�g������A�����Ő����ł���΁A��o���Ԃ̑����ɉ��������[�e�B���O���t�^�����Ƃ����d�g�݂��B

�@���[�e�B���O�ɂ���Ė��̃��x�����������Ă���A���[�e�B���O��1200�����ł���΁ADevision2�Ƃ�����r�I�Ղ��������������ƂɂȂ�B�uDevision2�͖��ɑ΂��đf���Ɏ������邱�Ƃʼn�������́v�ƈΓ����B

�@����ȈΓ����̃��[�e�B���O�͌��݁A1800�O��B���[�e�B���O�̕��z�ł͏��10�����x�̐��l�ł���B�u��ʂ��߂�͈̂��|�I�Ƀ��V�A�������ł��B�č��ɔ�ׂ�ƁA�L���ɂȂ肽���A�Ƃ����v�����������`�x�[�V�����ɂ‚Ȃ����Ă���̂��ȂƎv���܂��v�B

�@���[�e�B���O�ɂ�郂�`�x�[�V�����͂�����񎩐g�̊�т����A����ȏ�Ɂu�����Ɋy�����v�ƈΓ����͘b���B���̊�т̌���́A��͂萢�E�̃g�b�v���x���̃v���O���}�[�̃R�[�h�����邱�ƂŎ��g�̐����ɂ‚Ȃ���_�ɂ���B

�@�uTopCoder�̃A���S���Y���}�b�`�ŏo�肳�����́A���퐶���Ńv���O���}�[�����ʂ���悤�Ȗ��ł͂Ȃ��A�p�Y���I�ȗv�f����������Ȃ��̂ł��̂ŁA�Ɩ��ɖ𗧂‚��Ƃ����΂���͕�����܂���B�܂��ATopCoder�̎Q���҂̃R�[�h�Ɍ����ڂ̔����������邩�ƌ����΁A�}�N���𑽗p����ȂǃS�`���S�`���������ɓǂ݂ɂ����R�[�h�������C�����܂��B�������A�V���v���ŃG���K���g�ł���Ƃ����_�ł͋��ʂ��Ă��܂��B���̉�@�Ƃ��āw����ȉ�����������̂��I�x�Ɗ����邱�Ƃ����΂��΂���܂��B���������R�[�h�����邱�Ƃ��ł���̂͊�тȂ�ł��v

�V���v���ŃG���K���g�ȃR�[�h

�@�ȉ��̃R�[�h�̓��b�h�R�[�_�[�̈�l�AEryx�i�|�[�����h�j�̃R�[�h�B���̃R�[�h�́A�^����ꂽ�����‚��̃h�~�m���K���ɏ]���ĕ��ׂăT�C�N�����‚���Ƃ��A���̃T�C�N���̍����͉��ʂ肠��܂����H�@�Ƃ������ɑ΂�����Ƃ��ē������p�������̂��B

�@������Ȃ��uFOR�v�A�uPROD�v�A�ull�v�Ȃǂ�C�̃}�N���ŁA�u�R�[�h���̂��̂́A�I�C���[�O���t�̐����𗘗p�������̂ŁA���ɃV���v���v�ƈΓ����B�����ɖ������̕��@���v���‚������d�v�ȗv�f�ł��邱�Ƃ������悢�Ⴞ�낤�B


class ExtendedDominoes {
    public:
    long long countCycles(vector  pieces) {
        // !FDI
        int cnt[10];
        FOR(k,0,10) cnt[k] = 0;
        FOR(t,0,Size(pieces)) FOR(u,0,2) cnt[pieces[t][u]-'0']++;
        ll vals[20];
        vals[0] = 1; vals[1] = 0;
        FOR(k,2,20) vals[k] = (k-1) * vals[k-2];
        return PROD(k,0,10, vals[cnt[k]]);
    }
}; 

Copyright c 2001-2007, TopCoder, Inc. All rights reserved.

�@Google���D�ꂽ�l�ނ𔭌@���邽�߂�Google Code Jam���J�Â��Ă��邱�Ƃ����������悤�ɁATopCoder����Ƃɑ΂��ėD�G�ȃv���O���}�[�����N���[�g���邱�Ƃ��r�W�l�X���f���̗v�Ƃ��Ă���B�u���[�e�B���O��2200�𒴂����l���́A�\���������Ԃ��Ȃ邽�߁A���b�h�R�[�_�[�ƌĂ΂��̂ł����A��������RedCoder������Google�֓��Ђ����A�Ƃ������b���悭���ɂ��܂��B�A�E�ւ̃p�X���J����Ȃǂ̗v�f���������1�‚Ƃ��Ă͋�������ł��傤���A������͂�͂菃���Ɋy��������Ƃ������R�ŎQ���҂͏W�܂��Ă���̂ł͂Ȃ��ł��傤���v�B

�@���ʂ̖���Google Code Jam�ł̃t�@�C�i���X�g�Ɏc�邱�Ƃ��Ƙb���B�u40�΁A50�΂ɂȂ��Ă��ATopCoder��Google Code Jam�Ő킢������Ǝv���܂��v�ƈΓ����B�v���O���}�[35�Β�N���Ȃǂǂ����������B

�v���t�B�[��

Γ

���{�A�C�E�r�[�E�G���\�t�g�E�F�A���ƕ��@�Γ��E�l

1999�N�A���{IBM���ЁB2001�N����WebSphere Application Server�̋Z�p�x����S�����A������J2EE�v���W�F�N�g�ɂ����ăV�X�e���f�U�C����A�v���P�[�V�����J���̏������s���B2002�N�ɂ́A��IBM���[���C�������ɂāA�ƊE�W���p�t�H�[�}���X�]���c�́ESPEC�ɂ�����J2EE�A�v���P�[�V�����T�[�o�]���V�X�e���ł���uSpecJAppServer2002�v�̊J���ɏ]���BApache Geronimo�ȂǃT�[�o�T�C�h�݂̂Ȃ炸�N���C�A���g�T�C�h�̃e�N�m���W�[�APython�AEclipse�ATopCoder�ł̃A���S���Y���R���e�X�g�ւ̎Q���Ȃǂ��̋����͑���ɓn��B�����ɁuEclipse�p�[�t�F�N�g�}�j���A���v�Ȃǂ�����B

�Γ�����TopCoder�ł̐�Ղ⌻�݂̃��[�e�B���O


Copyright © ITmedia, Inc. All Rights Reserved.

'; e_dlv.innerHTML = html; adRequest({position:dlv_pos,dom:true}); }else if(ad_type === 'gam'){ var html = '
'; e_dlv.innerHTML = html; refreshGam('InArtSpecialLink'); }else if(ad_type === 'logly'){ var html = '
'; e_dlv.innerHTML = html; loglySet(g_id); }else if(ad_type === 'google'){ var html = '
'; e_dlv.innerHTML = html; googletag.cmd.push(function(){ var slot8 = googletag.defineSlot('/43042345/nlab_artinsert_RT',[[336,280],[300,250],'fluid'],'div-gpt-ad-1551176482959-0').addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.enableServices(); googletag.display('div-gpt-ad-1551176482959-0'); googletag.pubads().refresh([slot8]); }); } }; var insert_ok = function(_target,_str){ var clearfix = d.createElement('div'); clearfix.className = 'colBoxClear'; if(ad_float_fix){ e_body.insertBefore(e_dlv,_target); e_body.insertBefore(clearfix,_target.nextElementSibling); }else{ e_body.insertBefore(e_dlv,_target); } set_dlv(); }; var insert_ng = function(_str){ e_dlv.style.display = 'none'; }; var main = function(){ var e_nodes = e_body.childNodes; // BODY �����q�v�f var e_tags = []; // BODY �����^�O var p_num = []; // BODY ���� P �^�O�ʒu var p_target_num; // �g�}����ʒu var o_float = {}; // ��荞�ݗv�f var o_this = {}; // �A�N�e�B�u�^�O var o_next = {}; // �A�N�e�B�u�^�O�̎��̃^�O var flag_insert = 0; // �}���t���O // ��荞�ݗv�f�`�F�b�N var check_float = function(_e){ var e = 0; if(_e.id.match(/^col\d{3}(l|r)$/)){ e = _e; } return e; }; // �v�f�� Y ���W�ƍ����̍��v�l var get_element_y = function(_e){ var ey = 0; var eh = _e.offsetHeight; while(_e){ ey += _e.offsetTop; _e = _e.offsetParent; } return ey + eh; }; var check_ptag = function(_e){ var e = 0; if(_e.tagName && _e.tagName === 'P'){ e = _e; } return e; }; var try_insert = function(){ p_target_num = Math.floor(p_num.length / 2) - 1; if(p_target_num >= _maxrange) p_target_num = _maxrange; if(dis_con) p_target_num = 0; for(var i = p_num[p_target_num]; i < e_tags.length; i++){ o_this.e = check_ptag(e_tags[i]); if(o_this.e){ o_next.e = check_ptag(e_tags[i + 1]); if(o_next.e){ if(!o_float.e || check_float(e_tags[i - 1])){ o_float.e = check_float(e_tags[i - 1]); o_float.n = i - 1; } if(o_float.e && o_float.n < i + 1){ o_float.y = get_element_y(o_float.e); o_this.y = get_element_y(o_this.e); set_line(o_float.y,'red'); set_line(o_this.y,'blue'); if(o_float.y < o_this.y){ flag_insert = 1; insert_ok(o_next.e,_threshold + ' �p���ȏ��荞�݂���'); break; } }else{ flag_insert = 1; insert_ok(o_next.e,_threshold + ' �p���ȏ��荞�݂Ȃ�'); break; } } }else{ o_float = {}; } } if(!flag_insert){ insert_ng('�}���ʒu�Ȃ�'); } }; // �S�q�v�f����^�O�̂ݔz��ɓ���� for(var i = 0; i < e_nodes.length; i++){ if(e_nodes[i].tagName){ e_tags.push(e_nodes[i]); } } // �S�^�O���� P �^�O�ʒu��z��ɓ���� for(var i = 0; i < e_tags.length; i++){ if(e_tags[i].tagName === 'P') p_num.push(i); // �ŏ��̉�荞�ݗv�f���i�[ if(!o_float.e){ o_float.e = check_float(e_tags[i]); o_float.y = get_element_y(o_float.e); o_float.n = i; } } if(p_num.length >= _threshold){ try_insert(); }else{ insert_ng('P �^�O ' + _threshold + ' �ȉ�'); } }; if(e_body){ main(); }else{ insert_ng('�L���{���Ȃ�'); } })(document,4,5);
���Ȃ��ɂ������߂̋L��PR