View Code of Problem 3829

#include <stdio.h>

void scan(int a[], int n) {
    int i;
    for(i=0;i<n;i++) {
        scanf("%d",&a[i]);
    }
}


void init(int sum[], int n) {
    int i;
    for(i=0;i<n;i++) {
        sum[i]=0;
    }
}

void print(int sum[], int n) {
    int i;
    for(i=0;i<n;i++) {
        printf("%d",sum[i]);
        if(i<n-1) {
            printf(" ");
        }
    }
    printf("\n");
}

void sum1(int c[], int b[], int n) {
    int i;
    c[0] = b[0];
    for(i=1;i<n;i++) {
        c[i] = c[i-1] + b[i];
    }
}

void eat(int sum[], int a[], int b[], int c[], int n) {
    int i,j;
    for(j=0;j<n;j++) {
        if(a[0] < c[j]) {
            if(j>0 && a[0] > c[j-1]) {
                sum[j] += a[0]-(c[j-1]);
            }
            break;
        }
        sum[j] += b[j];
    }
    sum[0] = (a[0] > b[0]? b[0]:a[0]);
    for(i = 1; i < n; i++) {
        for(j = i; j < n; j++) {
            if(a[i] < c[j]-c[i-1]) {
                if(a[i] > c[j-1]-c[i-1]) {
                    sum[j] += a[i]-(c[j-1]-c[i-1]);
                }
                break;
            }
            sum[j] += b[j];
        }
    }
}

int main() {
    int n;
    while(scanf("%d",&n)!=EOF) {
        int a[n],b[n],c[n],sum[n];
        scan(a,n);
        scan(b,n);
        init(sum,n);
        sum1(c,b,n);
        eat(sum,a,b,c,n);
        print(sum,n);
    }
    return 0;
}

Double click to view unformatted code.


Back to problem 3829