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 }

 

posted @ 2013-12-14 21:43  CrazyForAC  阅读(224)  评论(0)    收藏  举报