/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Wrong Answer 1ms 540.0 KiB
#2 Wrong Answer 1ms 540.0 KiB
#3 Wrong Answer 2ms 540.0 KiB
#4 Wrong Answer 9ms 3.711 MiB
#5 Wrong Answer 15ms 5.52 MiB
#6 Wrong Answer 20ms 8.207 MiB
#7 Wrong Answer 175ms 191.973 MiB
#8 Wrong Answer 92ms 96.203 MiB
#9 Wrong Answer 2ms 1.027 MiB
#10 Wrong Answer 86ms 88.707 MiB
#11 Accepted 2ms 540.0 KiB
#12 Wrong Answer 95ms 100.219 MiB
#13 Wrong Answer 17ms 18.75 MiB
#14 Wrong Answer 8ms 1.52 MiB

Code

#include<bits/stdc++.h>
using namespace std;
const long long M=1e5+10,MOD=1000000000;
typedef long long ll;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int t=1;
    cin>>t;
    while(t--){
      int n,k;
      cin>>n>>k;
      vector<int>a(n);
      for(int & x:a)cin>>x;
      int sum=accumulate(a.begin(),a.end(),0);
      int limit=-1;
      for(int i=0;i<=sum;i++){
         if(sum-i>=k)limit=i;
      }
      sort(a.begin(),a.end());
      if(limit==-1){
        cout<<"0\n";
        continue;
      }
      vector<vector<ll>>dp(n+2,vector<ll>(limit+1,0));
      dp[0][0]=1;
      for(int i=1;i<=n;i++){
        for(int j=a[i-1];j<=limit;j++){
            dp[i][j]=(dp[i][j] + dp[i-1][j-a[i-1]])%MOD;
        }

      }
     // dp[n][0]=(dp[n][0]-1LL+MOD)%MOD;
      ll ans=0;
      for(int i=0;i<=limit;i++)ans=(ans+dp[n][i])%MOD;
      cout<<ans<<"\n";
     

    }
        


   return 0;
 
}

Information

Submit By
Type
Submission
Problem
P1093 Number of Ways (Easy version)
Language
C++20 (G++ 13.2.0)
Submit At
2024-08-20 13:44:39
Judged At
2024-08-20 13:44:39
Judged By
Score
10
Total Time
175ms
Peak Memory
191.973 MiB