• USACO section1.2 Miking cows


      1 /*
      2 ID: vincent63
      3 LANG: C
      4 TASK: milk2
      5 */
      6 #include <stdio.h>
      7 #include<stdlib.h>
      8 #include<string.h>
      9 struct time{
     10     int begin;
     11     int end;
     12     int len;
     13 };
     14 
     15 void sort(struct time t[],int n){
     16     int i,j;
     17     struct time temp;
     18     for(i=0;i<n;i++){
     19         for(j=i;j<n;j++){
     20             if(t[j].begin<t[i].begin){
     21                 
     22                 temp.begin=t[i].begin;
     23                 temp.end=t[i].end;
     24                 temp.len=t[i].len;
     25                 
     26                 t[i].begin=t[j].begin;
     27                 t[i].end=t[j].end;
     28                 t[i].len=t[j].len;
     29                 
     30                 t[j].begin=temp.begin;
     31                 t[j].end=temp.end;
     32                 t[j].len=temp.len;
     33                 
     34             }
     35         }
     36     }
     37 }
     38 void merge(struct time t[],int n){
     39     int i,j;
     40     for(i=0,j=1;j<n;i++,j++){
     41         if(t[i].end<t[j].begin){
     42             continue;
     43         }else if(t[i].end>=t[j].begin&&t[i].end<=t[j].end){
     44             t[i].end=t[j].end;
     45             t[j].begin=t[i].begin;
     46             t[i].len=t[i].end-t[i].begin;
     47             t[j].len=t[j].end-t[j].begin;
     48             
     49         }else if(t[i].end>t[j].end){
     50             t[j].begin=t[i].begin;
     51             t[j].end=t[i].end;
     52             t[j].len=t[j].end-t[j].begin;
     53         }
     54     }
     55 }
     56 int findmax(struct time t[],int n){
     57     int i,j;
     58     int max=0;
     59     for(i=0;i<n;i++){
     60         if(t[i].len>max){
     61             max=t[i].len;
     62         }
     63     }
     64     return max;
     65 }
     66 int findmin(struct time t[],int n){
     67     int temp[n];
     68     int i;
     69     int max=0;
     70     
     71     for(i=0;i<n-1;i++){
     72         temp[i]=t[i+1].begin-t[i].end;
     73         if(temp[i]>0&&temp[i]>max){
     74             max=temp[i];
     75         }
     76     }
     77     
     78     return max;
     79 }
     80 
     81 int main () {
     82     FILE *fin  = fopen ("milk2.in", "r");
     83     FILE *fout = fopen ("milk2.out", "w");
     84     
     85     int n,i;
     86     char buf[10];
     87     char buf2[20];
     88        
     89     fgets(buf,10,fin);
     90     n=atoi(buf); 
     91     
     92     struct time t[2*n];
     93     
     94     for(i=0;i<n;i++){
     95         int b,e;
     96         fgets(buf2,20,fin);
     97         sscanf(buf2,"%d %d",&b,&e);
     98         t[i].begin=b;
     99         t[i].end=e;
    100         t[i].len=e-b;            
    101     }
    102     
    103     sort(t,n); 
    104     merge(t,n);    
    105         
    106     int max;
    107     
    108     max=findmax(t,n);
    109     int min;
    110     min=findmin(t,n);
    111 
    112     char res[10];
    113     sprintf(res,"%d ",max);
    114     fputs(res,fout);
    115     sprintf(res,"%d
    ",min);
    116     fputs(res,fout);
    117     printf("%d %d
    ",max,min);
    118     return 0;
    119 }
  • 相关阅读:
    端口被sysmtem占用
    windows 服务器恢复选项恢复
    服务端相关知识学习(二)之Zookeeper可以干什么
    服务端相关知识学习(一)之什么是zookeeper
    whistle学习(二)之启动、停止、重启、更新whistle等命令
    whistle学习(一)之安装、使用、软件功能了解
    动画方案 Lottie 学习(二)之实战
    动画方案 Lottie 学习(一)之基础
    移动端真机debug调试神器 vConsole学习(二)之实战
    移动端真机debug调试神器 vConsole学习(一)之基础
  • 原文地址:https://www.cnblogs.com/houshengtao/p/6102857.html
Copyright © 2020-2023  润新知