/ SeriousOJ /

Record Detail

Memory Exceeded


  
# Status Time Cost Memory Cost
#1 Wrong Answer 1ms 540.0 KiB
#2 Wrong Answer 2ms 504.0 KiB
#3 Wrong Answer 2ms 364.0 KiB
#4 Wrong Answer 8ms 3.684 MiB
#5 Wrong Answer 13ms 5.699 MiB
#6 Wrong Answer 22ms 8.441 MiB
#7 Memory Exceeded ≥108ms ≥128.016 MiB
#8 Wrong Answer 102ms 96.332 MiB
#9 Wrong Answer 3ms 844.0 KiB
#10 Wrong Answer 109ms 88.785 MiB
#11 Accepted 2ms 540.0 KiB
#12 Wrong Answer 95ms 99.996 MiB
#13 Wrong Answer 19ms 18.527 MiB
#14 Wrong Answer 8ms 1.691 MiB
#15 Memory Exceeded ≥116ms ≥128.016 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 14:07:46
Judged At
2024-08-20 14:07:46
Judged By
Score
10
Total Time
≥116ms
Peak Memory
≥128.016 MiB