Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
感觉有很多朋友想的复杂了点把?下面是我的想法,至少我觉得很容易理解,AC了用两个变量存储可能的范围,[l,r],赋初值l为无穷小,r为无穷大,用一个bool变量ok记录是否诚实,初始值为true,然后每输入一个值,看在不在这个范围内,不在就把ok置为false,在不用管,并且接着更新范围,最后看ok是true还是false就好了~~~ if(strcmp(line,"right on")==0) { if(x<=a.l||x>=a.r) ok = false; if(ok) printf("Stan may be honest\n"); else printf("Stan is dishonest\n"); a.l = INT_MIN; a.r = INT_MAX; ok = true; } else if(strcmp(line,"too high")==0){ if(x<=a.l) ok=false; a.r=a.r<x?a.r:x; } else{ if(x>=a.r) ok=false; a.l=a.l>x?a.l:x; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator