Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <functional>
- #include <algorithm>
- #include <vector>
- #include <set>
- #include <string>
- #include <list>
- #include <map>
- using namespace std;
- #define mp make_pair
- double res = 0;
- int find(int x, vector<int> v) {
- int count = 0;
- for (int i = 0; i < v.size(); ++i) {
- count += v[i] == x;
- }
- return count;
- }
- set<vector<int>> s;
- void rec(vector<int> a,vector<int> v, double sum, double p,int d) {
- if (d == 3) {
- auto it = s.find(a);
- if (it != s.end()) return;
- s.insert(a);
- for (int i = 0; i < a.size(); ++i) {
- cout << a[i] << " ";
- }
- cout << p;
- cout << "\n\n";
- res += (sum*p);
- return;
- }
- for (int i = 0; i < v.size(); ++i) {
- int x = v[i];
- v.erase(v.begin() + i);
- a.push_back(x);
- rec(a,v,sum+x,p*((double)find(x, v) + 1) / (v.size() + 1),d+1);
- a.pop_back();
- v.insert(v.begin() + i,x);
- }
- }
- int main() {
- #ifdef _KOCH
- freopen("read.txt", "r", stdin);
- #else
- // freopen("multimap.in", "r", stdin);
- // freopen("multimap.out", "w", stdout);
- #endif
- ios::sync_with_stdio(0);
- cin.tie(0);
- cout.tie(0);
- int n;
- cin >> n;
- vector<int> v(n);
- for (int i = 0; i < n; ++i) {
- cin >> v[i];
- }
- int sum = 0;
- vector<int> a;
- rec(a,v, 0, 1,0);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement