Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.82 KB | None | 0 0
  1.  
  2. FIRST ATTEMPT - theta(n^3)
  3.  
  4. #include <iostream>
  5.  
  6. using namespace std;
  7.  
  8. void testcase(){
  9.     int n; cin >> n;
  10.     int  x[n];
  11.    
  12.     for (int i = 0; i < n; i++){
  13.         cin >> x[i];
  14.     }
  15.    
  16.     int even_pairs = 0;
  17.     for (int i=0; i < n; i++){
  18.         for(int j=0; j < n; j++){
  19.             int sum = 0;
  20.             for (int k=i; k <= j; k++){       // DUMB
  21.                 sum += x[k];
  22.             }
  23.             if (sum % 2== 0){
  24.                 even_pairs++;
  25.             }
  26.         }
  27.     }
  28. }
  29.  
  30. int main() {
  31.     int t; cin >> t;
  32.    
  33.     for (int i = 0; i < t; i++) {
  34.         testcase();
  35.     }
  36.     return 0;
  37. }
  38.  
  39. SECOND ATTEMP - theta(n^2)
  40.  
  41.     1. calculate partial sums
  42.     2. for every i < j check the parity of Sj - Si-1
  43.  
  44. #include <iostream>
  45.  
  46. using namespace std;
  47.  
  48. void testcase(){
  49.     int n; cin >> n;
  50.     int  x[n];
  51.    
  52.     for (int i = 0; i < n; i++){
  53.         cin >> x[i];
  54.     }
  55.    
  56.     int S[n];
  57.     S[0] = x[0]
  58.     for (int i=1; j <n; i++){
  59.         S[i] = x[i] + S[i-1];
  60.     }
  61.    
  62.     int even_pairs = 0;
  63.     for (i=0; i<n; i++){
  64.         for (int j=i; j<n; j++){
  65.             int sum;
  66.             if (i==0)
  67.                 sum = S[j];
  68.             else
  69.                 sum = S[j] - S[i-1];
  70.            
  71.             if (sum % 2 == 0)
  72.                 even_pairs++;
  73.                
  74.         }
  75.     }
  76.     return even_pairs;
  77. }
  78.  
  79. int main() {
  80.     int t; cin >> t;
  81.    
  82.     for (int i = 0; i < t; i++) {
  83.         testcase();
  84.     }
  85.     return 0;
  86. }
  87.  
  88. THIRD ATTEMP - theta(n)
  89.  
  90. #include <iostream>
  91.  
  92. using namespace std;
  93.  
  94. void testcase(){
  95.     int n; cin >> n;
  96.     int  x[n];
  97.    
  98.     for (int i = 0; i < n; i++){
  99.         cin >> x[i];
  100.     }
  101.    
  102.     int S[n];
  103.     S[0] = x[0]
  104.     for (int i=1; j <n; i++){
  105.         S[i] = x[i] + S[i-1];
  106.     }
  107.    
  108.     int even_pairs = 0;
  109.     int even= 0, odd = 0;
  110.    
  111.     for (int i = 0; i <n ; i++){
  112.         if (S[i] %2==0){
  113.             even++;
  114.         } else {
  115.             odd++;
  116.         }
  117.     }
  118.    
  119.     even_pairs += (even * (even -1)) / 2;
  120.     even_pairs += (odd* (odd-1)) / 2;
  121.     even_pairs += even_pairs;
  122.     return even_pairs;
  123. }
  124.  
  125. int main() {
  126.     int t; cin >> t;
  127.    
  128.     for (int i = 0; i < t; i++) {
  129.         testcase();
  130.     }
  131.     return 0;
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement