Advertisement
Guest User

Untitled

a guest
Aug 24th, 2011
546
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <sstream>
  2. #include <queue>
  3. #include <set>
  4. #include <map>
  5. #include <cstdio>
  6. #include <cstring>
  7. #include <cstdlib>
  8. #include <cctype>
  9. #include <cmath>
  10. #include <iostream>
  11. #include <string>
  12. #include <vector>
  13. #include <algorithm>
  14.  
  15. using namespace std;
  16.  
  17. #define INF                  (1<<30)
  18. #define LINF                 ((long long)1<<60)
  19. #define PI                   2*acos(0)
  20. #define eps                  1e-7
  21. #define two(x)               (1<<x)
  22. #define twoL(x)              ((long long)1<<x)
  23.  
  24. #define FOR(i,a,b)           for(i=(a);i<(b);i++)
  25. #define FORD(i,a,b)          for(i=(a);i>(b);i--)
  26. #define REP(i,n)             for(i=0;i<(n);i++)
  27. #define REV(i,n)             for(i=(n-1);i>=0;i--)
  28. #define Sort(s)              sort(s.begin(),s.end())
  29. #define ASort(s,n)           sort(&s[0],&s[n])
  30. #define Reverse(s)           reverse(s.begin(),s.end())
  31. #define Mem(A,c)             memset(A,c,sizeof(A))
  32. #define Split(str)           {vs.clear();istringstream A(str);while(A>>(str))vs.push_back(str);}
  33. #define CLR(s)               s.clear()
  34. #define SZ(s)                s.size()
  35. #define pb                   push_back
  36. #define mp                   make_pair
  37. #define fs                   first
  38. #define sc                   second
  39.  
  40. #define isBetn(x,a,b)        (x>=a && x<=b)
  41. #define isIntSect(a,b,c,d)   ((a>=c && a<=d) || (b>=c && b<=d) || (c>=a && d<=b))
  42.  
  43. typedef long long            ll;
  44. typedef pair<int,int>        pii;
  45. typedef pair<string,int>     psi;
  46. typedef pair<string,string>  pss;
  47. typedef vector<int>          vi;
  48. typedef vector<string>       vs;
  49. typedef map<int,int>         mii;
  50. typedef map<string,int>      msi;
  51. typedef map<char,int>        mci;
  52.  
  53. //int dx[]={1,-1,0,0},dy[]={0,0,1,-1}; // 4-direction delta
  54. //int dc[]={0,1,0,-1,1,1,-1,-1},dr[]={1,0,-1,0,1,-1,-1,1}; // 8-direction delta
  55. //int dk[]={1,2,2,1,-1,-2,-2,-1},dl[]={2,1,-1,-2,-2,-1,1,2}; // Knight's move
  56.  
  57. int main()
  58. {
  59.     int n,m,h,a[102];
  60.     int i,sum;
  61.  
  62.     cin >> n >> m >> h ;
  63.  
  64.     sum=0;
  65.     REP(i,m)
  66.     {
  67.         cin >> a[i];
  68.         sum+=a[i];
  69.     }
  70.  
  71.     if(sum<n)
  72.     {
  73.         printf("%lf\n",-1.0);
  74.         return 0;
  75.     }
  76.  
  77.     double ans=1.0L;
  78.     REP(i,n-1)
  79.     {
  80.         ans*=(double)(sum-a[h-1]-i);
  81.         ans/=(double)(sum-1-i);
  82.     }
  83.  
  84.     printf("%lf\n",1.0-(double)ans);
  85.  
  86.     return 0;
  87. }
Advertisement
RAW Paste Data Copied
Advertisement