BackGround

FatMouse拥有许多奶酪,所有的奶酪都有一个彼此不同的重量。FatMouse为了控制它自己的体重,在每天早上它都会计算今天应该吃多少奶酪才能无痛苦地减肥。

The Problem

你将会从输入中得到FatMouse拥有的各个奶酪的重量和FatMouse决定今天要吃的奶酪重量。你必须从FatMouse拥有的奶酪中选择三个来达到这个奶酪重量(早、中、晚饭)。输出要达到这个奶酪重量所有可能的安排方法数。

输入

输入包括多组测试数据。每组测试数据的第一行包括两个整数n和m(3<=n<=100,1<=m<=1000),代表FatMouse拥有n个奶酪和今天它一共要吃重量为m的奶酪。接下来的n行,每行包括一个整数(小于100),代表FatMouse的每个奶酪的重量(没有两个奶酪的重量是相同的)。当n=m=0时输入结束,并且这组数据不包括在需要计算的数据中。

输出

对应与每组入数据,输出一个值,代表要达到m重量所有可能的安排方法数。

样例输入

5 10
1
2
3
4
5
3 4

2
3
0 0

样例输出

2
0

解题思路:

  三重循环暴力可解。

AC代码:

#include <stdio.h>
#include <iostream>
using namespace std; int num[]; int main(){
int n,m;
while(scanf("%d %d",&n,&m)==&&(n!=&&m!=)){
for(int i=;i<n;i++){
scanf("%d",&num[i]);
}
int ans=;
for(int i=;i<n;i++){
for(int j=i+;j<n;j++){
for(int k=j+;k<n;k++){
if(num[i]+num[j]+num[k]==m){
ans++;
break;
}
}
}
}
printf("%d\n",ans);
}
return ;
}
05-12 01:04