Advertisement
Guest User

Untitled

a guest
May 27th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.99 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. #define Write freopen("out.txt","w",stdout)
  4. #define Read freopen("in.txt","r",stdin)
  5.  
  6. #define si(a) scanf("%d",&a)
  7. #define sii(a,b) scanf("%d %d",&a,&b)
  8. #define siii(a,b,c) scanf("%d %d %d",&a,&b,&c)
  9. #define sl(a) scanf("%lld",&a)
  10. #define sll(a,b) scanf("%lld %lld",&a,&b)
  11. #define slll(a,b,c) scanf("%lld %lld %lld",&a,&b,&c)
  12.  
  13. #define lli long long
  14. #define m_p make_pair
  15. #define p_b push_back
  16.  
  17. #define lim 10000000000
  18. #define mod 200
  19. #define Max 100005
  20. #define PI acos(-1.0)
  21.  
  22. ///*** set bit and check bit**
  23. //#define IsComp(n) (arr[n>>6]&(1<<((n>>1)&31)))
  24. //#define SetComp(n) arr[n>>6]|=(1<<((n>>1)&31))
  25. using namespace std;
  26.  
  27. ///* Direction Array *
  28. //int dirx[]= {1,0,-1,0};
  29. //int diry[]= {0,1,0,-1};
  30.  
  31. ///** Translator Functions**
  32. //int ToInt(string s){int r = 0;stringstream sin(s);sin >> r;return r;}
  33. //double ToDouble(string s) { double r = 0; stringstream sin(s); sin >> r; return r; }
  34. //string ToString(int n) { string s; stringstream convert;convert << n;s = convert.str();return s;}
  35.  
  36. //priority_queue< pair<int,int> , vector< pair<int,int> >, greater< pair<int,int> > >pq;
  37. //***My code goes from here**
  38. int arr[202];
  39. int dp[202][50][100];
  40. int a,b,d,k;
  41. int fnc(lli idx,lli k,lli val)
  42. {
  43. if(idx==a)
  44. {
  45. if(val==0&&k==0) return 1;
  46. else return 0;
  47. }
  48. if( dp[idx][k][val+30]!=-1 ) return dp[idx][k][val+30];
  49. int r=0,r1=0;
  50. r+=fnc( idx+1,k-1,(((val+arr[idx])%d)+d)%d );
  51. r1+=fnc( idx+1,k,val );
  52.  
  53. return dp[idx][k][val+30]=r+r1;
  54. }
  55. int main()
  56. {
  57. //Write;
  58. int tc;
  59. si(tc);
  60. for( int tt=1; tt<=tc; tt++ )
  61. {
  62.  
  63. sii(a,b);
  64. for(int i=0; i<a; i++)
  65. {
  66. lli x;
  67. //sl(x);
  68. si(arr[i]);
  69. }
  70. printf("Case %d:\n",tt);
  71. while(b--)
  72. {
  73. memset(dp,-1,sizeof(dp));
  74. sii(d,k);
  75.  
  76. printf("%d\n",fnc(0,k,0));
  77. }
  78.  
  79.  
  80. }
  81.  
  82.  
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement