cf 1046f splitting money 代码

对于每个a[i],先减去f 然后看有多少个ans就要创立一个地址 余下的如果大于0就要再创立一个地址

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

#include <cstdio>
#include <cmath>
using namespace std;
typedef long long ll;

const int maxn=200010;
ll a[maxn];

int ()
{
int n;
ll f,x;
scanf("%d",&n);
for (int i=0;i<n;i++)
{
scanf("%lld",&a[i]);
}
scanf("%lld%lld",&f,&x);

ll ans=f+x;
ll res=0;

for (int i=0;i<n;i++)
{
a[i]-=f;
res+=a[i]/ans;
if(a[i]%ans>0)
res++;
}
res*=x;
printf("%lldn",res);
return 0;
}