第3回ブルーブリッジカップソフトウェア類省試合本題-C-A-3_酒の量を比べる


//             -C-A-3_   
/*
         (   20 ),       。    :     ,
	          ,       。        ,
	     ,    ......      4  ,         ,
	        。  4       ,      。

         ,        。         :
	“......  ,       .......    ,     ,     ......”

            ,        ,           。

              ,       ,       。

       :  ,  ,...

      ,      :20,5,4,2,0

        “  .txt” ,      !

*/

/*【    】
  :              
  :
12 6 4 2 0
15 10 3 2 0
18 9 3 2 0
20 5 4 2 0
*/

#include
#include
using namespace std;

int drunkMan[5];//             ,drunkMan[1]   1     ,       
bool visit[21];//             
int sum;//                 

/*
 * @  :       
 * @  :n   n ,remainder   n       
 * @  :  
*/ 
void dfs(int n,int remainder)
{
	if(n==5)
	{
		//         :
		//                 ,           
		if(sum == (drunkMan[1] + drunkMan[2] + drunkMan[3] + drunkMan[4]) 
			&& (1.0/sum+1.0/(sum-drunkMan[1])+1.0/(sum-drunkMan[1]-drunkMan[2])+1.0/(sum-drunkMan[1]-drunkMan[2]-drunkMan[3])) == 1.0)
		{
			//          
			cout<  
int main()  
{  
    int i,j,k,l,m;  
    for(i=4;i<=20;i++)  
    {  
        for(j=1;j