fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long int
  4.  
  5. int dp[101][101][11];
  6.  
  7. int main(){
  8. ios_base::sync_with_stdio(false);
  9. cin.tie(0); cout.tie(0);
  10. int n,m,c;
  11. cin>>n>>m>>c;
  12. memset(dp,0,sizeof(dp));
  13. for(int i=1;i<=n;i++)
  14. {
  15. int x,y,s;
  16. cin>>x>>y>>s;
  17. dp[x][y][s]++;
  18. }
  19.  
  20. //initialise the dp matrix
  21. for(int i=1;i<=100;i++)
  22. {
  23. for(int j=0;j<=10;j++){
  24. dp[1][i][j] = dp[1][i][j] + dp[1][i-1][j];
  25. dp[i][1][j] = dp[i][1][j] + dp[i-1][1][j];
  26. }
  27. }
  28.  
  29. for(int i=1;i<=100;i++)
  30. {
  31. for(int j=1;j<=100;j++)
  32. {
  33. for(int k=0;k<=10;k++)
  34. {
  35. dp[i][j][k] = dp[i][j][k] + dp[i-1][j][k] + dp[i][j-1][k] - dp[i-1][j-1][k];
  36. }
  37. }
  38. }
  39.  
  40.  
  41. for(int i=1;i<=m;i++)
  42. {
  43.  
  44. int t,x1,y1,x2,y2;
  45. cin>>t>>x1>>y1>>x2>>y2;
  46. ll ans = 0;
  47. for(int i=0;i<=10;i++)
  48. ans+=(dp[x2][y2][i] - dp[x1 - 1][y2][i] - dp[x2][y1 - 1][i] + dp[x1 - 1][y1 - 1][i])
  49. *(i+t)%(c+1);
  50. cout<<ans<<'\n';
  51. }
  52. return 0;
  53. }
  54.  
Success #stdin #stdout 0s 4164KB
stdin
2 3 3
1 1 1
3 2 0
2 1 1 2 2
0 2 1 4 5
5 1 1 5 5
stdout
1
3
3