Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.73 KB | None | 0 0
  1. #include<stdio.h>
  2.  
  3. struct interval_t{
  4.  int start;
  5.  int end;
  6. };
  7.  
  8. struct interval_array_t{
  9.   struct interval_t array[10];
  10.   int size;
  11. };
  12.  
  13. struct interval_t max_intersection(struct interval_array_t*, int);
  14.  
  15. int main(){
  16.   struct interval_array_t arInterval;
  17.   arInterval.size = 0;
  18.  
  19.   while(scanf("%d%d", &arInterval.array[arInterval.size].start,
  20.                          &arInterval.array[arInterval.size].end) != EOF){
  21.    arInterval.size++;
  22.   }
  23.   struct interval_t selectedInterval = max_intersection(&arInterval, arInterval.size);
  24.   printf("start: %d\nend: %d\n", selectedInterval.start, selectedInterval.end);
  25.         return 0;
  26. }
  27.  
  28. struct interval_t max_intersection(struct interval_array_t* inter, int size){
  29.          int count, startLine, endLine, sLine, eLine;
  30.          int maxCount = 0;
  31.    for(int i = 0; i < inter->size; i++){
  32.             count = 0;
  33.             startLine = inter->array[i].start;
  34.             endLine = inter->array[i].end;
  35.  
  36.             for(int j = 0; j < inter->size; j++){
  37.                     if((inter->array[i].start < inter->array[j].start)&&(inter->array[i].start < inter->array[j].end)||
  38.                         (inter->array[i].start > inter->array[j].start)&&(inter->array[i].end < inter->array[j].end)||
  39.                         (inter->array[i].start > inter->array[j].start)&&(inter->array[i].end > inter->array[j].end)){
  40.                             if(startLine > inter->array[j].start){
  41.                                 startLine = inter->array[j].start;
  42.                             }
  43.                             if(endLine > inter->array[j].end){
  44.                                     endLine = inter->array[j].end;
  45.                             }
  46.                         count++;
  47.                         }  
  48.             }
  49.             if(count >= maxCount){
  50.                 sLine = startLine;
  51.                 eLine = endLine;
  52.                 maxCount = count;
  53.             }
  54.    }
  55.    struct interval_t intersectionInter;
  56.    intersectionInter.start = sLine;
  57.    intersectionInter.end = eLine;
  58.  
  59.    return intersectionInter;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement