#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ft first
#define sd second
#define mkp make_pair
#define pb push_back
typedef pair<int,int> pii;
typedef pair<int,pii> piii;
int type,timee,n,m,a[100005],sum[100005],minn[100005],maxx[100005];
void solve(){
	int money=m;
	for(int i=1;i<=n-1;i++){
		int av=money/(n+1-i),avg=2*av;
		a[i]=rand()%(avg-(i==n-1))+1;
		money-=a[i];
		sum[i]+=a[i];
		minn[i]=min(minn[i],a[i]),maxx[i]=max(maxx[i],a[i]);
	}
	a[n]=money;
	sum[n]+=a[n];
	minn[n]=min(minn[n],a[n]),maxx[n]=max(maxx[n],a[n]);
}
double mm;
signed main(){
	srand(time(0));
	cout<<"欢迎来到发红包模拟器,本游戏严格按照微信发红包规则\n";
	cout<<"请输入人数(小于100000):";cin>>n;
	cout<<"请输入钱数(可输入2位小数):";cin>>mm;
	cout<<"请输入游玩方式(1.只发一次,看钱数 2.发多次,看分析)\n";cin>>type;
	if(mm*100<n){
		cout<<"钱不够分。。。\n";
		return 0;
	}
	m=mm*100.0;
	memset(minn,0x3f,sizeof minn);
	if(type==1){
		solve();
		int maxxx=1;
		for(int i=2;i<=n;i++){
			if(a[maxxx]<a[i])maxxx=i;
		}
		for(int i=1;i<=n;i++){
			printf("第%d个抢:%.2lf元",i,a[i]/100.0);
			if(a[i]==a[maxxx])cout<<" 手气最佳\n";
			else cout<<'\n';
		}
	}
	else{
		cout<<"你要发几次:";cin>>timee;
		for(int i=1;i<=timee;i++)solve();
		for(int i=1;i<=n;i++){
			printf("第%d个平均抢到%.2lf元,最少抢过%.2lf元,最多抢过%.2lf元\n",i,sum[i]/100.0/(timee*1.0),minn[i]/100.0,maxx[i]/100.0);
		}
	}
}