fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define endl '\n'
  4. #define int long long
  5. const int MOD = 1000000007;
  6. const int INF = LLONG_MAX/2;
  7. const int MAXN = 100000;
  8. int primes[1000000];
  9.  
  10. void seive(){
  11. fill(primes, primes + 1000000, 1);
  12. primes[0] = primes[1] = 0;
  13. for(int i = 2 ; i*i < 1000000 ; i++){
  14. if(primes[i]){
  15. for(int j = i*i ; j < 1000000 ; j += i){
  16. primes[j] = 0;
  17. }
  18. }
  19. }
  20. }
  21. bool isPrime(int n){
  22. if(n <= 1) return false;
  23. for(int i = 2 ; i*i <= n ; i++){
  24. if(n % i == 0) return false;
  25. }
  26. return true;
  27. }
  28. int gcd(int a, int b){
  29. if(a == 0) return b;
  30. return gcd(b % a, a);
  31. }
  32. int power(int a, int b) {
  33. int res = 1;
  34. a %= MOD;
  35. while (b > 0) {
  36. if (b & 1) res = res * a % MOD;
  37. a = a * a % MOD;
  38. b >>= 1;
  39. }
  40. return res;
  41. }
  42.  
  43. // nCr % MOD for n < MOD
  44. int nCrModP(int n, int r) {
  45. if (r > n) return 0;
  46. if (r == 0 || r == n) return 1;
  47.  
  48. int numerator = 1, denominator = 1;
  49. for (int i = 0; i < r; i++) {
  50. numerator = (numerator * (n - i)) % MOD;
  51. denominator = (denominator * (i + 1)) % MOD;
  52. }
  53. return (numerator * power(denominator, MOD - 2)) % MOD;
  54. }
  55.  
  56. // Lucas's Theorem
  57. int lucas(int n, int r) {
  58. if (r == 0) return 1;
  59. return (lucas(n / MOD, r / MOD) * nCrModP(n % MOD, r % MOD)) % MOD;
  60. }
  61. void solve() {
  62. int n,x,y,z,w,b;
  63. cin>>n>>x>>y>>z>>w>>b;
  64. int A[n];
  65. for(int i = 0 ; i<n ; i++){
  66. cin>>A[i];
  67. }
  68. map<vector<int>,int>m1;
  69. int cnt1=0,cnt2=0,cnt3=0,cnt4=0,cnt5=0;
  70. int totalcnt = 0;
  71. for(int i = 0 ; i<n ; i++){
  72. vector<int>a;
  73. if(A[i]==x){
  74. cnt1++;
  75. }
  76. if(A[i]==y){
  77. cnt2++;
  78. }
  79. if(A[i]==z){
  80. cnt3++;
  81. }
  82. if(A[i]==w){
  83. cnt4++;
  84. }
  85. if(A[i]==b){
  86. cnt5++;
  87. }
  88. a.push_back((cnt2-cnt1));
  89. a.push_back((cnt3-cnt2));
  90. a.push_back((cnt4-cnt3));
  91. a.push_back((cnt5-cnt4));
  92. if(m1.find(a)!=m1.end()){
  93. totalcnt++;
  94. }
  95. m1[a]++;
  96. }
  97. cout<<totalcnt<<endl;
  98. }
  99. signed main(){
  100. ios::sync_with_stdio(false); cin.tie(NULL);
  101. //int t;
  102. //cin >> t;
  103. //while(t--){
  104. solve();
  105. //}
  106. return 0;
  107. }
Success #stdin #stdout 0s 5316KB
stdin
10
1 2 3 4 5
1 2 1 2 3 4 5 2 1 2
stdout
2