奇怪的比赛


某电视台举办了低碳生活大奖赛。题目的计分规则至关奇怪:app

每位选手须要回答10个问题(其编号为1到10),越后面越有难度。答对的,当前分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理)。spa

每位选手都有一个起步的分数为10分。code

某获胜选手最终得分恰好是100分,若是不让你看比胜过程,你能推断出他(她)哪一个题目答对了,哪一个题目答错了吗?blog

若是把答对的记为1,答错的记为0,则10个题目的回答状况能够用仅含有1和0的串来表示。例如:0010110011 就是可能的状况。io

你的任务是算出全部可能状况。每一个答案占一行。console

答案写在“解答.txt”中,不要写在这里!class

 

// tst.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

int a[10];

void dfs(int t, int g)
{
    if(t==11 && g==100)
    {
        for(int i=0;i<10;i++)
            printf("%d",a[i]);
        printf("\n");
        return;
    }
    if(t==11 && g!=100)
        return;

    a[t-1]=1;
    dfs(t+1,g*2);
    a[t-1]=0;
    dfs(t+1,g-t);
    
}

int main(int argc, char* argv[])
{
    dfs(1,10);
    return 0;
}