242
Pentru un număr natural n
se generează submulțimile de numere naturale de forma {0} {1, 2} {3, 4, 5} {6, 7, 8, 9} ...
unde ultima submulțime are n
elemente.
Cerință
Scrieți un program care citește de la tastatură trei numere naturale n
, k
și r
și afișează:
- câte submulțimi sunt formate dintr-un număr de elemente pare(cardinalul submulțimilor este un număr par)
- media aritmetică a elementelor din submulțimile cu număr de ordine
k
șir
(0 < k ≤ r ≤ 100
) - elementele submulțimii
r
sub forma: primul, al doilea, ultimul, al treilea, al patrulea, penultimul, etc.
Date de intrare
Programul va citi de la tastatură n
, k
și r
numere naturale.
Date de ieșire
Se afișează fiecare pe câte o linie :
- numărul de submulțimi cu număr de elemente pare
- media aritmetică a numerelor din submulțimile
k
șir
- elementele submulțimii
r
sub forma: primul, al doilea, ultimul, al treilea, al patrulea, penultimul, etc.
Restricții și precizări
1 ≤ k ≤ r ≤ n ≤ 100
Exemplu
Date de intrare
10 5 7
Date de ieșire
5 19 21 22 27 23 24 26 25
#include <bits/stdc++.h> using namespace std; int n, r, k; int a[100]; int main() { cin >> n >> k >> r; cout << n / 2 << endl; int sum = 0; for(int i = k * (k - 1) / 2; i < k * (k - 1) / 2 + k; ++i) sum += i; for(int i = r * (r - 1) / 2; i < r * (r - 1) / 2 + r; ++i) sum += i; cout << sum / (k + r) << endl; for(int i = r * (r - 1) / 2; i < r * (r - 1) / 2 + r; ++i) a[i - r * (r - 1) / 2 + 1] = i; for(int i = 1, j = 2, z = r, fr = 1 ; fr <= r; fr++, i+=2, j+=2, z--){ if(fr <= r) cout << a[i] << ' ', fr++; if(fr <= r) cout << a[j] << ' ', fr++; if(fr <= r) cout << a[z] << ' '; } return 0; }
Comentarii