Dice and Coin
#include<stdio.h>
int main()
{
int n, k;
scanf("%d%d", &n, &k);
double ans=0;
for(int i=1;i<=n;i++)
{
double c=1.0/n;
int x=i;
for(;;)
{
if(x>=k)
break;
c*=0.5;
x*=2;
}
ans+=c;
}
printf("%.12lf", ans);
}
Sequence Decomposing
#include<stdio.h>
int main()
{
int n;
scanf("%d", &n);
int a[n];
for(int i=0;i<n;i++)
{
scanf("%d", &a[i]);
}
int b[n];
int bi=0;
b[bi]=a[0];
for(int i=1;i<n;i++)
{
int k=0;
for(int j=0;j<=bi;j++)
{
if(a[i]>b[j])
{
b[j]=a[i];
k=1;
break;
}
}
if(k==0)
{
bi++;
b[bi]=a[i];
}
}
printf("%d", bi+1);
return 0;
}
Integer Cards
#include<stdio.h>
#include<algorithm>
using namespace std;
struct nuu
{
int bj;
int cj;
};
int main()
{
int n, m;
scanf("%d%d", &n, &m);
int a[n];
nuu b[m];
for(int i=0;i<n;i++)
{
scanf("%d", &a[i]);
}
for(int i=0;i<m;i++)
{
scanf("%d%d", &b[i].bj, &b[i].cj);
}
sort(a, a+n);
sort(b, b+m, [](nuu ai, nuu bi){return ai.cj>bi.cj||(ai.cj==bi.cj&&ai.bj>bi.bj);});
int ai=0;
for(int i=0;i<m;i++)
{
int k=0;
for(int j=0;j<b[i].bj;j++)
{
if(b[i].cj>a[ai])
{
a[ai]=b[i].cj;
ai++;
}
else
k=1;
if(ai>=n)
k=1;
}
if(k==1)
break;
}
unsigned long long sum=0;
for(int i=0;i<n;i++)
{
sum+=a[i];
}
printf("%llu", sum);
return 0;
}