一次高昂的学费

//http://main.edu.pl/en/archive/oi/20/tak#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
typedef long long LL;

#define rep(i,n) for (LL i=1,n__=n;i<=n__;i++)
#define repb(i,b,n) for (LL i=b,n__=n;i<=n__;i++)

LL d,m,n;
const LL mN=1000000+10;
LL a[mN];
int  main()
{
//    freopen("tak9a.in","r",stdin);
//    freopen("9a.out","w",stdout);
    cin>>d>>m>>n;
//    cout<<d<<‘ ‘<<m<<‘ ‘<<n<<endl;
    rep(i,n)
        cin>>a[i];
    sort(a+1,a+1+n);
    bool can=true;
    LL ans=0;
    LL ren=-m;
    if (a[n]<d-m)
    {
        can=false;
        goto ianss;//首先是这里,由于我已经把can搞成false了,我想怎么搞最后都会输出0。。。但im无初值RE了就挂了
    }        //
    LL im;
    rep(i,n)
        if (a[i]>=d-m)
        {
            im=i;
            break;
        }

    LL i;
    for (i=n;i>=1;i--)
    {
//        cout<<"i="<<i<<"\‘ren="<<ren<<endl;
        if (i==im)
        {
            if (ren*2>=((d-m)-a[im]))
            {
                ans=n-i+1;
                break;
            }
            continue;
        }
        if (a[i]+ren>=0)//其次是这个if,由于我在第一遍写的时候写了这个,脑海里一直觉得没什么了问题了,于是就没管了
        ren=ren*2+a[i];
        if (i>im)
        {
            if (ren>=d-m)
            {
                ans=n-i+1;
                break;
            }
        }
        else
            if (ren*2>=((d-m)-a[im]))
            {
                ans=n-i+1;
                break;
            }
        if (ren>=0)
            ren=0;
    }
//    cout<<n<<‘ ‘<<i<<endl;
//    for (LL j=n;j>=i;j--)
//        cout<<a[j]<<endl;
    ianss:
    if (can && ans>0)
        cout<<ans<<endl;
    else
        cout<<0<<endl;
//    cout<<n<<endl;
//    for (int i=1;i<=n;i++)
//        cout<<a[i]<<endl;
    return 0;
}

这两个错误都有一个共同点,就是觉得虽然结果已定,但觉得后面肯定不会出问题,于是没写特判,放着不管,导致了严重的错误。

1.任何不确定的情况,写特判。然后做剩下的情况,虽然代码可能会变丑,但可读性和准确性都得到了提高。

fight!!!

一次高昂的学费

时间: 2024-10-28 15:02:00

一次高昂的学费的相关文章

MySQL 创始人:写代码比打游戏爽,程序员应多泡开源社区

根据StackOverflow的最新调查,MySQL仍然是全世界最流行的数据库,受访的开发者中有44.3%的人在使用,超过了第二位的SQL Server 10多个百分点.可是你知道MySQL是怎么诞生的吗?openocean 的一篇有关MySQL开发者Michael “Monty” Widenius的传记为我们揭秘. 大学计算机专业的数量总是会随着技术公司的兴衰而起伏,而现在,计算机科学正处在全盛时期.这意味着,不管怎样,计算机科学专业的毕业生绝大部分可能都会去敲2年的代码,再转到产品管理,然后

程序猿之回忆过去^_^展望未来 (于2013-6-23 16:51记)

突发一想,我的技术文章转载了那么多,没有关于我个人的生活或者职场文章,下面复制一份大学写的QQ日志(于2013-6-23 16:51记),以后会持续更新,ps:文笔烂到渣. 最近毕业季发现空间动态里面日志越来越多了,暮然回首(不知道这成语用对了地方没有)才发现,自己已经很久没有写日志了,大学四年基本已经结束了,陆陆续续大伙都走了,不过我们宿舍还没有动身,我应该是最后的,我就不写大伙了,就写我自己. 回忆过去--时间定格在去年10月份,那时候开始已经有公司来校园招聘了,那时的我很茫然,不知道找什么

【转】数据分析/数据挖掘 入门级选手建议

1.数据分析和数据挖掘联系和区别 联系:都是搞数据的 区别:数据分析偏统计,可视化,出报表和报告,需要较强的表达能力.数据挖掘偏算法,重模型,需要很深的代码功底,要码代码,很多= =. 2.怎么入门 请百度"如何成为一名数据分析师"或者"如何成为一名数据挖掘工程师".英文好上Quora,不行上知乎,看看入门资料. 3.选哪些书 看入门资料给你提供的书,有电子版下电子版,没电子版买纸质书,花不了多少钱. 4.用什么语言 数据分析:excel是必须,R是基本,pytho

你的背景,是这个时代 张璁

记得去年的这个时候,北京的风也是这么大.那天晚上,你趴在一桌子啤酒瓶的夜摊上,跟我讲了你最近的遭遇:要毕业了,可几家中意的金融机构却连简历都没能投进去:多年的女友家境优越,这些年一直面对着她家人的反对,终于还是分手了. 我知道你是个倔强要强的乐天派,从西部的小山村走到北京的最高学府,荣誉铺满了道路,你从没觉得自己矮人一头.可是那天,我分明从你口中听到了落寞:“我并不比任何人差,如果我有背景的话,我肯定不是今天这个样子.” 你那天的气话,恐怕让我们不少的同辈都心有戚戚.作为刚刚走上社会的年轻人,我

初学Java:我为什么来学Java?

从8月1日到现在,两周过去了,报名培训班学习Java也过去两周了.今天开通了我的博客,以后在这里记录自己的学习经过. 我是小董,今年23岁,来自四川省阿坝州茂县,土生土长的农村人.经历了农村的贫穷落后,当然现在也没有富裕:经历了小学上学要走1个多小时路程的辛苦:经历了爸妈出门打工而成为留守儿童的孤独:经历了08年汶川地震的恐惧:经历了13年特大泥石流的后怕,也经历了从学习成绩优秀变为成绩不合格.经历不多,也谈不上精彩,甚至还平凡. 2012年6月高考,9月去了西昌,在西昌预科教育学院读了一年预科

是机会而不是威胁

是机会而不是威胁 --中国研磨杂志约稿 作者:张国祥 2015年6月5日 话题:近期在网上常看到关于"WTO 15年保护期将到"的话题,大家的讨论也五花八门,那么在您看来,坊间流传的所谓"15年保护期将至"的问题是否会对我国的经济.我国的企业造成一定影响? 笔者首先想到的是机会而不威胁!是机遇当然也是挑战!正像15年前,中国即将加入"WTO"时人们担忧中国企业不懂国际规则一定会大批倒闭一样,最后都会被事实证明:担忧是必要的,但前景一定是美好的!

娱乐八卦会 娱乐

假如邓紫棋在上海长大 假若她在上海长大,可能会在电视机前痴痴的看着,憧憬着<我是歌手>-- 有几天,家里的背景音乐一直在循环邓紫棋的歌.忙忙碌碌,走来走去间,忽然感觉,缭绕在耳边的歌声里有一股向上的.非常励志的魔力.不论她唱的是什么,整个的编曲和演绎最后让听的人充满了力量.似乎有一股强大的气流裹挟着她,而她,驾驭自如且随心享受. 她,娇媚的娃娃脸.说话嘟着嘴,稚气未脱.撒娇卖乖.但是一上场,歌声中的霸气.琴键上的潇洒.厚积薄发的内力,像是另一个人.打开百度,邓紫棋,90后,出生在上海,4岁移居

[知乎有感] 读研到底为了什么,值不值得?

昨晚在知乎上看到一位题主的问题:“读研到底为了什么,读研到底值不值的?” 引起了很广泛的热议.其实这个问题自己也有想过,读研的日子里每天在实验室做实验,忙于发paper,可是这些paper到底能为自己未来的就业带来什么?以前也问过很多找工作或者已经工作的师兄师姐,他们给出的一致答案都是,研究生的paper和找工作半毛钱关系没有.我也时常思考,我为什么读研?我读研到底学到了什么?它对我的未来到底有什么帮助?其实,这些问题在自己心里已有了答案,昨天看一位网友的回答,顿时感觉说出了我自己的心声,在此特

51CTO学院 - 千里马和伯乐在这里相遇

大学毕业之后进入IT行业,一直从事研发工作.直到3年前开始接触嵌入式软件培训领域,逐渐从兼职老师成为一名专职嵌入式培训讲师.虽然挣得不比以前多,但是我真心喜欢这个工作,上课时在讲堂上的挥洒自如,畅快淋漓,学生真心的喜爱和热情洋溢的评价也让我感到真心的喜悦. 今年3月份,一个偶然的机会接触到了51CTO学院,开始认识在线教育的形式.试着把自己以前上课时随堂录制的课程放在网上,结果收获了意想不到的惊喜.30天不到学生数好几千,截至目前短短3个月学生数3.5万多,几十条充满热情和认可的真挚评价,让我每