牛客寒假算法基础集训营6

https://ac.nowcoder.com/acm/contest/332#question

A.出题

#include <bits/stdc++.h>
using namespace std;
#define LL long long
LL N, M;
 
int main() {
    scanf("%lld%lld", &N, &M);
    N=N-M*6;
 
    if(N >= 0 && N <= M*3){
        printf("%lld\n",max(0LL,M-N));
        return 0;
    }
 
    printf("jgzjgzjgz\n");
 
    return 0;
}
View Code

B.煤气灶

#include <bits/stdc++.h>
using namespace std;
 
int N, d, x;
long long M;
 
int main() {
    scanf("%d%lld%d%d", &N, &M, &d, &x);
    long long sum = N;
    int temp = 0;
    for(int i = 1; i <= x; i ++) {
        if(sum >= M) {
            temp = i;
            break;
        }
        sum += (N + d * i);
    }
    printf("%d\n", temp);
    return 0;
}
View Code

C.项链

#include <bits/stdc++.h>
using namespace std;
 
const int maxn = 1e5 + 10;
int N, M;
 
struct Node{
    int a;
    int b;
}node[maxn];
 
bool cmp(const Node &x, const Node &y) {
    if(x.b != y.b)
        return x.b > y.b;
    else return x.a > y.a;
}
 
int main() {
    scanf("%d%d", &N, &M);
    long long ans = 0;
    for(int i = 0; i < M; i ++)
        scanf("%d", &node[i].a);
    for(int i = 0; i < M; i ++)
        scanf("%d", &node[i].b);
 
    sort(node, node + M, cmp);
    int cnt = N;
    for(int i = 0; i < M; i ++) {
        if(cnt == 0) break;
        if(cnt - node[i].a >= 0) {
            ans += (node[i].a * node[i].b);
            cnt -= node[i].a;
        } else {
            ans += (cnt * node[i].b);
            cnt = 0;
        }
    }
 
    printf("%lld\n", ans);
    return 0;
}
View Code

D.美食

#include <bits/stdc++.h>
using namespace std;
int N, a;
 
int main() {
    scanf("%d", &N);
    long long ans = 0;
    long long sum = 0;
    for(int i = 1; i <= N; i ++) {
        scanf("%d", &a);
        if(!a) ans += sum / 2, sum = 0;
        sum += a;
    }
    ans += sum / 2;
    printf("%lld\n", ans);
    return 0;
}
View Code

最后一场 佛系比赛 也算是功德圆满一场都没落下吧

FHFHFH

猜你喜欢

转载自www.cnblogs.com/zlrrrr/p/10348936.html