switch(pMin->g)
{
	case 0:
		pTmpNum = new_num(pMin->n*2, 0);
		if(pTmpNum==NULL) return 0;
		pool_add(pTmpNum, pool);
		break;
	case 1:
		pTmpNum = new_num(pMin->n*2, 0); // copypaste can be avoided
		if(pTmpNum==NULL) return 0;      // but readability of code will be lowered
		pool_add(pTmpNum, pool);

		pTmpNum = new_num(pMin->n*3, 1);
		if(pTmpNum==NULL) return 0;
		pool_add(pTmpNum, pool);
		break;
	default: //case 2
		pTmpNum = new_num(pMin->n*2, 0);
		if(pTmpNum==NULL) return 0;
		pool_add(pTmpNum, pool);

		pTmpNum = new_num(pMin->n*3, 1);
		if(pTmpNum==NULL) return 0;
		pool_add(pTmpNum, pool);

		pTmpNum = new_num(pMin->n*5, 2);
		if(pTmpNum==NULL) return 0;
		pool_add(pTmpNum, pool);
}