fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. int N,K;
  6. cin>>N>>K;
  7. int arr[N+1];
  8. for(int i=1;i<=N;i++){
  9. cin >> arr[i];
  10. }
  11. sort(arr+1,arr+N+1);
  12. int prS[N+1];
  13. prS[0]=0;
  14. for(int i=1;i<=N;i++){
  15. prS[i]=prS[i-1]+arr[i];
  16. }
  17. int ans[N+1][K+1]={}; // 學生 個數 求該學生數量拿到該個數的可能有幾種
  18. int prs[N+1][K+1]={};
  19. for(int i=0;i<=arr[1];i++){
  20. ans[1][i]=1;
  21. prs[1][i]+=prs[1][i-1];
  22. }
  23. for(int i=2;i<=N;i++){
  24. ans[i][0]=1;
  25. int num=prS[i]-prS[i-1];
  26. for(int j=1;j<=prS[i];j++){
  27. ans[i][j]=ans[i][j-1]+ans[i-1][j];
  28. }
  29. }
  30. for(int i=1;i<=N;i++){
  31. for(int j=0;j<=K;j++){
  32. cout << ans[i][j] << ' ';
  33. }cout << '\n';
  34. }
  35. }
Success #stdin #stdout 0.01s 5276KB
stdin
3 4
1 2 3
stdout
1 1 0 0 0 
1 2 2 2 0 
1 3 5 7 7