Sunday, September 23, 2018

Kitchen Timetable

  • Problem Description

    There are N students living in the dormitory of Berland State University. Each of them sometimes wants to use the kitchen, so the head of the dormitory came up with a timetable for kitchens usage in order to avoid the conflicts:

    The first student starts to use the kitchen at the time 0 and should finish the cooking not later than at the time A1.
    The second student starts to use the kitchen at the time A1 and should finish the cooking not later than at the time A2.
    And so on.
    The N-th student starts to use the kitchen at the time AN-1 and should finish the cooking not later than at the time AN

    The holidays in Berland are approaching, so today each of these N students wants to cook some pancakes. The i-th student needs Bi units of time to cook.

    The students have understood that probably not all of them will be able to cook everything they want. How many students will be able to cook without violating the schedule?
    Input

    The first line of the input contains an integer T denoting the number of test cases. The description of T test cases follows.

    The first line of each test case contains a single integer N denoting the number of students.

    The second line contains N space-separated integers A1, A2, ..., AN denoting the moments of time by when the corresponding student should finish cooking.

    The third line contains N space-separated integers B1, B2, ..., BN denoting the time required for each of the students to cook.
    Output

    For each test case, output a single line containing the number of students that will be able to finish the cooking.
    Constraints

    Should contain all the constraints on the input data that you may have. Format it like:

    1 <= T <= 10
    1 <= N <= 104
    0 < A1 < A2 < ... < AN < 109
    1 <= Bi <= 109 
  • CODING ARENA
  • #include<stdio.h>
    int main(){
    int T,N;
    scanf("%d",&T);
    while(T--){
    scanf("%d",&N);
    int A[N-1],i;
    for(i=0;i<N;i++){
    scanf("%d",&A[i]);
    }
    int B[N-1];
    for(i=0;i<N;i++){
    scanf("%d",&B[i]);
    }
    int count=0,temp=A[0];
    for(i=0;i<N;i++){
    if(B[i]<=temp){
    ++count;
    }
    temp=A[i+1]-A[i];
    }
    printf("%d\n",count);

    }
    return 0;
    }
  • Test Case 1

    Input (stdin)
    2
    
    3
    
    1 10 15
    
    1 10 3
    
    3
    
    10 20 30
    
    15 5 20
    
    
    Expected Output
    2
    
    1
  • Test Case 2

    Input (stdin)
    1
    
    3
    
    88 77 66
    
    15 25 35
    
    
    Expected Output
    1

No comments:

Post a Comment