Counting Rock samples
Problem DescriptionJuan Marquinho is a geologist and he needs to count rock samples in order to send it to chemical laboratory. He has a problem: The laboratory only accepts rock samples by a range of its size in ppm (parts per million). Juan Marquinho receives the rock samples one by one and he classifies the rock samples according the range of the laboratory. This process is very hard because the rock samples may be in millions. Juan Marquinho needs your help, your task is develop a program to get the number of rocks of a given range of size.
Constraints
10 <= S <= 10000
1 <= R <= 1000000
1<=size of Sample <= 1000
Input Format An positive Integer S (the number of rock samples) separated by a blank space, and a positive Integer R (the number of ranges of the laboratory); A list of the sizes of S samples (in ppm), as positive integers separated by space R lines where ith line containing two positive integers, space separated, indicating the minimum size and maximum size respectively of the ith range. Output R lines where ith line containing a single non-negative integer indicating the number of samples in the ith range.
Example 1
Input 10 2 345 604 321 433 704 470 808 718 517 811 300 350 400 700
Output
2
4
Explanation
There are 10 sampes (S) and 2 ranges ( R ). The samples are 345, 604,…811. The ranges are 300-350 and 400-700. There are 2 samples in the first range (345 and 321) and 4 samples in the second range (604, 433, 470, 517). Hence the two lines of the output are 2 and 4.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include <stdio.h> int main() { int arr[30],range_arr[20]; int arr_size,totalRange,i,j,count=0; scanf("%d%d",&arr_size,&totalRange); for(i=0;i<arr_size;scanf("%d",&arr[i]),i++); //get array values totalRange=totalRange*2; //total range numbers if 2 means total 4 nos. for(i=0;i<totalRange;i=i+2) //each time when range is received { //computation of no bw range will take place scanf("%d%d",&range_arr[i],&range_arr[i+1]); for(j=0;j<arr_size;j++) //check how many array value bw the range { if((arr[j]>=range_arr[i])&&(arr[j]<=range_arr[i+1])) count++; //to count no.of values b/w the given range } printf("%d\n",count); count=0; //reset count for next range } return 0; } |
OUTPUT :
0 comments