Короче что то я не могу врубиться в задание, из-за этого и прога не пишется...может просто глупею

вобщем вот задание:
Предположим, что имеются 10 гирь весом а1, ..., а10. Обозначим через Сг число способов, которыми можно составить вес г. Т.е. Сг - это число решений уравнения.
а1х1 + а2х2 + ... + а10х10, где х1 может принимать значение 0 или 1. (1=1, ..., 10). Определить Сг.

необходимо написать прогу на BC++B
хотя я буду благодарен и простому алгоритму, остальное сам сделаю ;)