in
3 4 //3顆球 抽4次
1 3 5 //球上的數字
10 //抽出的球上面的數字的總和, 11 不可能
1 3 5 //球上的數字
10 //抽出的球上面的數字的總和, 11 不可能
out
1 1 1 1 N //1+1+1+1=4, No 1 1 1 3 N 1 1 1 5 N 1 1 3 1 N 1 1 3 3 N 1 1 3 5 Y //1+1+3+5=10, Yes
a.in
3 4 1 3 5 10
a.out
1 1 1 1 N 1 1 1 3 N 1 1 1 5 N 1 1 3 1 N 1 1 3 3 N 1 1 3 5 Y 1 1 5 1 N 1 1 5 3 Y 1 1 5 5 N 1 3 1 1 N 1 3 1 3 N 1 3 1 5 Y 1 3 3 1 N 1 3 3 3 Y 1 3 3 5 N 1 3 5 1 Y 1 3 5 3 N 1 3 5 5 N 1 5 1 1 N 1 5 1 3 Y 1 5 1 5 N 1 5 3 1 Y 1 5 3 3 N 1 5 3 5 N 1 5 5 1 N 1 5 5 3 N 1 5 5 5 N 3 1 1 1 N 3 1 1 3 N 3 1 1 5 Y 3 1 3 1 N 3 1 3 3 Y 3 1 3 5 N 3 1 5 1 Y 3 1 5 3 N 3 1 5 5 N 3 3 1 1 N 3 3 1 3 Y 3 3 1 5 N 3 3 3 1 Y 3 3 3 3 N 3 3 3 5 N 3 3 5 1 N 3 3 5 3 N 3 3 5 5 N 3 5 1 1 Y 3 5 1 3 N 3 5 1 5 N 3 5 3 1 N 3 5 3 3 N 3 5 3 5 N 3 5 5 1 N 3 5 5 3 N 3 5 5 5 N 5 1 1 1 N 5 1 1 3 Y 5 1 1 5 N 5 1 3 1 Y 5 1 3 3 N 5 1 3 5 N 5 1 5 1 N 5 1 5 3 N 5 1 5 5 N 5 3 1 1 Y 5 3 1 3 N 5 3 1 5 N 5 3 3 1 N 5 3 3 3 N 5 3 3 5 N 5 3 5 1 N 5 3 5 3 N 5 3 5 5 N 5 5 1 1 N 5 5 1 3 N 5 5 1 5 N 5 5 3 1 N 5 5 3 3 N 5 5 3 5 N 5 5 5 1 N 5 5 5 3 N 5 5 5 5 N 16code#include <iostream> #include <stack> using namespace std; int N,M; //#balls, #draw int main () { int *A,target; int amountofy=0; int size=1; cin>>N>>M; A= new int [N]; for(int i=0;i<N;i++) { cin>>A[i]; } cin>>target; for(int i=0;i<M;i++) { size=size*N; } for(int i=0;i<size;i++ ) { stack<int >S;int a=i; for(int j=0;j<M;j++){ S.push (a%N); a=a/N; } int amount =0; for(int x=0;x<M;x++) { cout << A[S.top()] << ' '; amount+=A[S.top()]; S.pop(); } if (amount==target){ cout <<"Y";amountofy++;} else cout <<"N"; cout<<endl; } cout<<amountofy; }
沒有留言:
張貼留言