Guest User

Untitled

a guest
Jan 22nd, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.18 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <vector>
  4. #include <cmath>
  5. #include <algorithm>
  6. #include <iomanip>
  7. using namespace std;
  8.  
  9. const double eps=1e-7;
  10.  
  11. struct quest
  12. {
  13.     int lev;
  14.     bool b;
  15. };
  16.  
  17. bool ls(quest a, quest b)
  18. {
  19.     return a.lev < b.lev;
  20. }
  21.  
  22. int main()
  23. {
  24.     //freopen("input.txt","r",stdin);
  25.     int n,k;
  26.     cin >> n >> k;
  27.     vector<quest> a(n);
  28.     for (int i=0;i<n;++i)
  29.     {
  30.         cin >> a[i].lev;
  31.         a[i].b=1;
  32.     }
  33.     int q;
  34.     cin >>q;
  35.     double mn=2000;
  36.     double mx=-1;
  37.     for (int i=0;i<q;++i)
  38.     {
  39.         int s=0;
  40.         for (int j=0;j<(n/k);++j)
  41.         {
  42.             int h;
  43.             cin >> h;
  44.             a[h-1].b=0;
  45.             s+=a[h-1].lev;
  46.         }
  47.         double diff = double(s)/(n/k);
  48.         mn = min(mn,diff);
  49.         mx = min(mx,diff)
  50.     }
  51.  
  52.     sort(a.begin(),a.end(),ls);
  53.     int i=0;
  54.     int s=0;
  55.     for (int j=0;j<n;j++) {
  56.         if (a[j].b)
  57.         {
  58.             s+=a[j].lev;
  59.             ++i;
  60.         }
  61.         if (i>=(n/k)) break;
  62.     }
  63.     double diff = double(s)/(n/k);
  64.     if (i>=n/k)
  65.         mn=min(mn,diff);
  66.  
  67.     i=0;
  68.     j=n-1;
  69.     f=true;
  70.     s=0;
  71.     for (int j=n-1;j>=0;j--) {
  72.         if (a[j].b)
  73.         {
  74.             s+=a[j].lev;
  75.             ++i;
  76.         }
  77.         if (i>=(n/k)) break;
  78.     }
  79.     diff = double(s)/(n/k);
  80.     if (i>=n/k)
  81.         mx=max(mx,diff);
  82.     cout << setprecision (10) <<mn <<' ' <<mx <<endl;
  83.  
  84.  
  85.  
  86. }
Add Comment
Please, Sign In to add comment