Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- #define N 401
- using namespace std;
- int mod(int a,int d)
- {
- a%=d;
- if(a<0)
- a+=d;
- return a;
- }
- long long int subCount(int arr[],int n,int k)
- {
- int start=0,enda=0,sum=arr[0];
- long long int countc=0;
- while(start<n&&enda<n)
- {
- if(sum<=k)
- {
- ++enda;
- if(enda>=start)
- countc+=enda-start;
- if(enda<n)
- sum+=arr[enda];
- }
- else
- sum-=arr[start],++start;
- }
- return countc;
- }
- long long int countSubmatrix(int mat[N][N],int n,int k)
- {
- int st,dr,temp[n+1];
- long long int tot_count=0;
- for(st=0;st<n;++st)
- {
- memset(temp,0,sizeof(temp));
- for(dr=st;dr<n;++dr)
- {
- for(int i=0;i<n;++i)
- temp[i]+=mat[i][dr];
- tot_count+=subCount(temp,n,k);
- }
- }
- return tot_count;
- }
- int main()
- {
- int n,T,A,B,C,D,S[N][N];
- cin>>T>>n>>A>>B>>C>>D;
- for(int i=0;i<n;++i)
- for(int j=0; j<n; j++)
- S[i][j]=mod(A*(i+1)+B*(j+1)+C,D);;
- cout<<countSubmatrix(S,n,T);;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement