fork download
  1. #include <cstdio>
  2. #include <iostream>
  3. using namespace std;
  4. typedef long long int int64;
  5. int64 m[300000],A[100][100][101];
  6. int main()
  7. {
  8. // freopen("in2.txt","r",stdin);
  9. // freopen("out2.txt","w",stdout);
  10. int64 i,j,k,n,p,a,b,L;
  11. for(i=0;i<100;i++)for(j=0;j<100;j++)for(k=0;k<101;k++)A[i][j][k]=0;
  12. scanf("%lld",&n);
  13. for(i=0;i<n;i++){
  14. scanf("%lld",&m[i]);
  15. }
  16. for(i=1;i<100;i++){
  17. for(k=0;k<n;k++){
  18. A[i][k%i][k/3000]+=m[k];
  19. }
  20. for(j=0;j<i;j++){
  21. for(k=99;k>=0;k--){
  22. A[i][j][k]+=A[i][j][k+1];
  23. }
  24. }
  25. }
  26. scanf("%lld",&p);
  27. while(p--){
  28. scanf("%lld %lld",&a,&b);
  29. a--;
  30. L=0;
  31. if(b<100){
  32. k=a/3000;
  33. for(i=a;i<3000*(k+1);i+=b){
  34. L+=m[i];
  35. }
  36. L+=A[b][a%b][k+1];
  37. }
  38. else{
  39. for(i=a;i<n;i+=b){
  40. L+=m[i];
  41. }
  42. }
  43. printf("%lld\n",L);
  44. }
  45. return 0;
  46. }
Time limit exceeded #stdin #stdout 5s 13688KB
stdin
Standard input is empty
stdout
Standard output is empty