Codeforces350A
已经非常久没碰与算法相关的coding,从现在起,尽量坚持每天刷一道题,尽可能参加每一场Codeforces,这是新起点地第一个AC:

题意:
给出所有正确与错误答案所用时间,通过与否以运行时间来判断,寻找一个合理的最短的判题超时时间v:
v必须符合以下4个条件:
1、v是一个正整数;
2、所有正确答案都必须通过;
3、至少有一组正确答案通过时间小于v一半;
4、所有错误答案都不能被通过;
5、满足以上条件,v尽可能小;
python code:
1 I = lambda:map(int, raw_input().split()) 2 n, m = I() 3 c = I() 4 w = I() 5 v = max(max(c), 2*min(c)) 6 print (-1, v)[v < min(w)]
写了一个C++ code对比:
C++ code:
1 #include<stdio.h> 2 #include<string.h> 3 #define min(a,b) a>b?b:a 4 #define max(a,b) a>b?a:b 5 int main() 6 { 7 int i,j,n,m,minCorrect,maxCorrect,minWrong; 8 int correct[101],wrong[101]; 9 while(scanf("%d%d",&n,&m)!=EOF) 10 { 11 minCorrect=101; 12 maxCorrect=0; 13 minWrong=101; 14 for(i=0;i<n;i++) 15 { 16 scanf("%d",&correct[i]); 17 minCorrect=min(minCorrect,correct[i]); 18 maxCorrect=max(maxCorrect,correct[i]); 19 } 20 for(i=0;i<m;i++) 21 { 22 scanf("%d",&wrong[i]); 23 minWrong=min(minWrong,wrong[i]); 24 } 25 int v; 26 v=max(2*minCorrect,maxCorrect); 27 if(minWrong<=v) 28 printf("-1\n"); 29 else 30 printf("%d\n",v); 31 } 32 return 0; 33 }

浙公网安备 33010602011771号