Advertisement
KekLolChebureck

kek.cpp

Mar 20th, 2019
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.25 KB | None | 0 0
  1. #include <iostream>
  2. #include <functional>
  3. #include <algorithm>
  4. #include <vector>
  5. #include <set>
  6. #include <string>
  7. #include <list>
  8. #include <map>
  9. using namespace std;
  10.  
  11. #define mp make_pair
  12.  
  13.  
  14. double res = 0;
  15.  
  16.  
  17. int find(int x, vector<int> v) {
  18.     int count = 0;
  19.     for (int i = 0; i < v.size(); ++i) {
  20.         count += v[i] == x;
  21.     }
  22.     return count;
  23. }
  24. set<vector<int>> s;
  25. void rec(vector<int> a,vector<int> v, double sum, double p,int d) {
  26.     if (d == 3) {
  27.         auto it = s.find(a);
  28.         if (it != s.end()) return;
  29.         s.insert(a);
  30.         for (int i = 0; i < a.size(); ++i) {
  31.             cout << a[i] << " ";
  32.         }
  33.         cout << p;
  34.         cout << "\n\n";
  35.         res += (sum*p);
  36.         return;
  37.     }
  38.     for (int i = 0; i < v.size(); ++i) {
  39.         int x = v[i];
  40.         v.erase(v.begin() + i);
  41.         a.push_back(x);
  42.         rec(a,v,sum+x,p*((double)find(x, v) + 1) / (v.size() + 1),d+1);
  43.         a.pop_back();
  44.         v.insert(v.begin() + i,x);
  45.     }
  46. }
  47.  
  48. int main() {
  49. #ifdef _KOCH
  50.     freopen("read.txt", "r", stdin);
  51. #else
  52.     // freopen("multimap.in", "r", stdin);
  53.     // freopen("multimap.out", "w", stdout);
  54. #endif
  55.     ios::sync_with_stdio(0);
  56.     cin.tie(0);
  57.     cout.tie(0);
  58.     int  n;
  59.     cin >> n;
  60.     vector<int> v(n);
  61.     for (int i = 0; i < n; ++i) {
  62.         cin >> v[i];
  63.     }
  64.     int sum = 0;
  65.     vector<int> a;
  66.     rec(a,v, 0, 1,0);
  67.     return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement