http://codeforces.com/contest/873
战绩:只A了一道qwq
第二个用尺取法搞了好搞。一直不对。
A
给定一个数组,可以把k个值换成n,问你他们的和的最小
#include <bits/stdc++.h>
using namespace std;
/*
*/
const int maxn=1e4;
int a[maxn];
int main()
{ int m,n,k;
while(~scanf("%d%d%d",&m,&n,&k)){
for(int i=0;i<m;i++){
scanf("%d",&a[i]);
}
for(int i=m-n;i<m;i++){
a[i]=min(a[i],k);
}
int ans=0;
for(int i=0;i<m;i++)
ans+=a[i];
printf("%d",ans);
}
return 0;
}
B用前缀和,用一个信号量(我tm。。。)
记录一下这个信号量的初始值。
大佬大佬。
#include <bits/stdc++.h>
using namespace std;
/*
*/
const int maxn=1e4;
int a[maxn];
int main()
{ int m,n,k;
while(~scanf("%d%d%d",&m,&n,&k)){
for(int i=0;i<m;i++){
scanf("%d",&a[i]);
}
for(int i=m-n;i<m;i++){
a[i]=min(a[i],k);
}
int ans=0;
for(int i=0;i<m;i++)
ans+=a[i];
printf("%d",ans);
}
return 0;
}