来源CF的三个题目
CF442B:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAXN = 110;
double r[MAXN],d[MAXN],p[MAXN];
int main(){
int n;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%lf",r+i);
p[i] = 1-r[i];
}
//double maxn = p[i];
sort(r,r+n);
double maxn =r[n-1];
double sum = 1.0/(1-r[n-1]);
double ji = 1-r[n-1];
double du;
//cout<<maxn<<" "<<du<<endl;
for(int i=n-2;i>=0;i--){
sum+=1.0/(1-r[i]);
ji*=(1-r[i]);
du=ji*(sum-1.0*(n-i));
maxn=max(maxn,du);
//cout<<maxn<<" "<<du<<endl;
}
printf("%.10lf\n",maxn);
return 0;
}
CF369A:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAXN = 1010;
int a[MAXN];
int main(){
int n ,m,k;
cin>>n>>m>>k;
int flag=1;
int ans=0;
for(int i=0;i<n;i++)
{
cin>>a[i];
flag=1;
if(a[i]==1){
if(m==0){
flag=0;
}
m--;
}
if(a[i]==2){
if(k==0&&m==0)
{
flag=0;
m--;
}
else if(k==0&&m!=0){
m--;
}
else{
k--;
}
}
if(flag==0){
m++;
ans++;
}
}
cout<<ans<<endl;
return 0;
}
CF415A:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAXN = 110;
int a[MAXN],b[MAXN];
int main(){
int n,m;
cin>>n>>m;
memset(b,-1,sizeof(b));
for(int i=0;i<m;i++)
{
cin>>a[i];
for(int j=a[i];j<=n;j++)
{
if(b[j]>0)break;
b[j]=a[i];
}
}
cout<<b[1];
for(int i=2;i<=n;i++)
cout<<" "<<b[i];
cout<<endl;
return 0;
}