fork download
  1. #include <bits/stdc++.h>
  2. #define MOD 1000000007
  3. #define INF 2e9
  4. #define EPS 1e-9
  5. #define MAX LLONG_MAX
  6. #define MIN LLONG_MIN
  7. #define F first
  8. #define S second
  9. #define MP make_pair
  10. #define PB push_back
  11. #define EB emplace_back
  12. #define endl "\n"
  13. #define FOR(i,a,b) for (long long i = a; i < b; i++)
  14. #define REV(i,a,b) for (long long i = a; i >= b; i--)
  15. #define mset(a,v) memset(a, v, sizeof(a))
  16. typedef std::pair<int, int> pii;
  17. typedef std::vector<long long> vi;
  18. typedef std::vector<vi> vvi;
  19. typedef long long ll;
  20. typedef unsigned long long ull;
  21. using namespace std;
  22.  
  23. int main() {
  24. ios::sync_with_stdio(false);
  25. cin.tie(NULL);
  26. int t;
  27. cin >> t;
  28. while(t--) {
  29. int N;
  30. cin >> N;
  31. int A[N];
  32. FOR(i,0,N) {
  33. cin >> A[i];
  34. A[i] = abs(A[i]);
  35. }
  36. int dp[100];
  37. mset(dp,0);
  38. ll res = 0;
  39. FOR(i,0,N) {
  40. int tmp[100];
  41. mset(tmp,0);
  42. A[i] = A[i]%100;
  43. tmp[A[i]]++;
  44. if(A[i]%4==0 || A[i]%2 == 1) {
  45. res++;
  46. }
  47. FOR(j,0,100) {
  48. if(dp[j]!=0){
  49. if(j*A[i]%4==0 || j*A[i]%2==1) {
  50. res += dp[j];
  51. }
  52. }
  53. tmp[(j*A[i])%100] += dp[j];
  54. }
  55. FOR(j,0,100) {
  56. dp[j] = tmp[j];
  57. // if(tmp[j]!=0) {
  58. // cout << tmp[j] << " ";
  59. // }
  60. }
  61. }
  62. cout << res << endl;
  63. }
  64. return 0;
  65. }
  66.  
Success #stdin #stdout 0s 4256KB
stdin
Standard input is empty
stdout
Standard output is empty