zoukankan      html  css  js  c++  java
  • 刷题

    【题目背景】

    “好啊!一言为定!!”,作为蒟蒻的GJY竟然约定和神犇来一场世纪大战。

    【题目描述】

    GJY在期末的时候跟神犇约定了一次战争,这对于GJY来说可是一件具有挑战性并十分困难的事情。所有GJY从现在开始就要努力学习,认真学习。GJY为了赢过神犇可以不惜一切代价,就算是让她废寝忘食也是可以的。“不吃饭,不睡觉,不吃零食多思考”是她的宣战格言。给定一个GJY开始奋斗的时间,精确到分钟单位(xxxx[年]-yy[月]-zz[日]-hh[时]-ss[分]),和一个她和神犇大战的时间(xxxx[年]-yy[月]-zz[日]-hh[时]-ss[分])。GJY还有一种特殊的能力,就是她可以判断出她做一道题要花的时间,但她因为判断废了太多的脑力,所以就请聪明的你帮她看一下他在这一段时间内最多可以做多少道题目,GJY的命运就靠你来计算了。

    【输入格式】

    第一行输入一共有n道题目;

    接下来2到n+1行输入这道题需要花费的时间。

    n+2行输入GJY开始奋斗的时间(xxxx[年]-yy[月]-zz[日]-hh[时]:ss[分]);

    n+3行输入GJY和神犇约定好的时间(xxxx[年]-yy[月]-zz[日]-hh[时]:ss[分]);

    【输出格式】

    一行输出在此时间内GJY最多能做多少题目。

    【样例输入】

    4

    1

    1

    1

    1

    2017-1-21-11:29

    2017-1-21-11:30

    【样例输出】

    1

    样例解释:GJY一共有一分钟的时间可以做题,在这一分钟内她可以做一道题,所以答案为1.

    【数据范围】

    对于100%的数据,n≤5000,每道题所要花的时间≤10000




    程序:

    const
    d:array[0..12]of longint=(0,31,28,31,30,31,30,31,31,30,31,30,31);
    var
    sum,tj,s1,s2:int64;
    i,n,year1,year2,month1,month2,day1,day2,hour1,hour2,m1,m2:longint;
    zfc1,zfc2:string;
    a:array[0..10010]of longint;
    procedure aa;
    var
    mode:longint;
    begin
        val(copy(zfc1,1,pos('-',zfc1)-1),year1,mode);
        delete(zfc1,1,pos('-',zfc1));
        val(copy(zfc1,1,pos('-',zfc1)-1),month1,mode);
        delete(zfc1,1,pos('-',zfc1));
        val(copy(zfc1,1,pos('-',zfc1)-1),day1,mode);
        delete(zfc1,1,pos('-',zfc1));
        val(copy(zfc1,1,pos(':',zfc1)-1),hour1,mode);
        delete(zfc1,1,pos(':',zfc1));
        val(zfc1,m1,mode);
    end;
    procedure bb;
    var
    mode:longint;
    begin
        val(copy(zfc2,1,pos('-',zfc2)-1),year2,mode);
        delete(zfc2,1,pos('-',zfc2));
        val(copy(zfc2,1,pos('-',zfc2)-1),month2,mode);
        delete(zfc2,1,pos('-',zfc2));
        val(copy(zfc2,1,pos('-',zfc2)-1),day2,mode);
        delete(zfc2,1,pos('-',zfc2));
        val(copy(zfc2,1,pos(':',zfc2)-1),hour2,mode);
        delete(zfc2,1,pos(':',zfc2));
        val(zfc2,m2,mode);
    end;
    procedure kp(l,r:longint);
    var
    i,j,mid:longint;
    begin
        if l>=r then exit;
        i:=l;j:=r;mid:=a[(l+r) div 2];
        repeat
             while a[i]<mid do inc(i);
             while a[j]>mid do dec(j);
             if i<=j then
             begin
                 a[0]:=a[i];a[i]:=a[j];a[j]:=a[0];
                 inc(i);dec(j);
             end;
        until i>j;
        kp(l,j);
        kp(i,r);
    end;
    begin
        readln(n);
        for i:=1 to n do
        readln(a[i]);
        readln(zfc1);
        readln(zfc2);
        aa;
        bb;
        s1:=m1+hour1*60+(day1-1)*1440;
        s2:=m2+hour2*60+(day2-1)*1440;
        for i:=1 to month1-1 do
        s1:=s1+d[i]*1440;
        for i:=1 to month2-1 do
        s2:=s2+d[i]*1440;
        for i:=year1 to year2-1 do
        if (i mod 4=0)and(i mod 100<>0)or(i mod 400=0) then s2:=s2+527040 else s2:=s2+525600;
        sum:=s2-s1;
        kp(1,n);
        tj:=0;
        for i:=1 to n do
        if sum>=a[i] then
        begin
            sum:=sum-a[i];
            inc(tj);
        end;
        write(tj);
    end.

  • 相关阅读:
    获取最近6个月的年月(yyyyMM,不包括当月)
    checkbox与<c:forEach>在开发中遇到的问题记录
    MyBatis开发-->增删改
    MyBatis开发-->接口方式编程
    MyBatis开发-->入门
    android-async-http框架之与网络进行数据交互
    android-async-http框架之与服务器进行数据交互
    jQuery截取{}里的字符串及获取json里的值
    SSH整合之三:添加Hibernate环境且使之与Spring进行整合
    angular源码剖析之Provider系列--QProvider
  • 原文地址:https://www.cnblogs.com/YYC-0304/p/9500108.html
Copyright © 2011-2022 走看看