Advertisement
a53

maru

a53
Apr 1st, 2019
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. #define N 401
  4. using namespace std;
  5.  
  6. int mod(int a,int d)
  7. {
  8. a%=d;
  9. if(a<0)
  10. a+=d;
  11. return a;
  12. }
  13.  
  14. long long int subCount(int arr[],int n,int k)
  15. {
  16. int start=0,enda=0,sum=arr[0];
  17. long long int countc=0;
  18. while(start<n&&enda<n)
  19. {
  20. if(sum<=k)
  21. {
  22. ++enda;
  23. if(enda>=start)
  24. countc+=enda-start;
  25. if(enda<n)
  26. sum+=arr[enda];
  27. }
  28. else
  29. sum-=arr[start],++start;
  30. }
  31. return countc;
  32. }
  33.  
  34. long long int countSubmatrix(int mat[N][N],int n,int k)
  35. {
  36. int st,dr,temp[n+1];
  37. long long int tot_count=0;
  38. for(st=0;st<n;++st)
  39. {
  40. memset(temp,0,sizeof(temp));
  41. for(dr=st;dr<n;++dr)
  42. {
  43. for(int i=0;i<n;++i)
  44. temp[i]+=mat[i][dr];
  45. tot_count+=subCount(temp,n,k);
  46. }
  47. }
  48. return tot_count;
  49. }
  50.  
  51. int main()
  52. {
  53. int n,T,A,B,C,D,S[N][N];
  54. cin>>T>>n>>A>>B>>C>>D;
  55. for(int i=0;i<n;++i)
  56. for(int j=0; j<n; j++)
  57. S[i][j]=mod(A*(i+1)+B*(j+1)+C,D);;
  58. cout<<countSubmatrix(S,n,T);;
  59. return 0;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement