April Fools Day Contest 2014
April 29, 2014
April Fools Day Contest 2014
A、C、H三道题目
A. The Great Game
这题没看懂。。看了官方题解真是恍然大悟啊,原来是石头剪刀布啊!!!
8< 代表剪刀啊
() 代表石头啊
[] 代表布啊
真是逆天啊,这么一说还真觉得有点像。。。。尤其是那个剪刀。
给那个出题人的想象力跪了。
/*
* =====================================================================================
* Filename : TheGreatGame.cpp
* Description : So Funny
* Version : 0.1
* Created : 04/29/14 07:58
* Author : Liu Xue Yang (LXY), liuxueyang457@163.com
* Motto : How about today?
* =====================================================================================
*/
#include <cstdlib>
#include <cstdio>
#include <cstring>
using namespace std;
/*
* === FUNCTION ======================================================================
* Name: judge
* Description: who win?
* =====================================================================================
*/
int
judge ( char a, char b )
{
if ( a=='[' ) {
if ( b=='[' ) {
return 0;
}
else if ( b=='(' ) {
return 1;
}
else {
return -1;
}
}
if ( a=='(' ) {
if ( b=='[' ) {
return -1;
}
else if ( b=='(' ) {
return 0;
}
else {
return 1;
}
}
if ( a=='8' ) {
if ( b=='[' ) {
return 1;
}
else if ( b=='(' ) {
return -1;
}
else {
return 0;
}
}
return 0;
} /* ----- end of function judge ----- */
/*
* === FUNCTION ======================================================================
* Name: main
* =====================================================================================
*/
int
main ( int argc, char *argv[] )
{
char a[21], b[21];
scanf ( "%s%s", a, b );
int len = strlen(a), wina = 0, winb = 0;
for ( int i = 0; i < len; i+=2 ) {
int tmp = judge(a[i], b[i]);
if ( tmp > 0 ) {
++wina;
}
else if ( tmp < 0 ) {
++winb;
}
}
if ( wina > winb ) {
printf ( "TEAM 1 WINS\n" );
}
else if ( wina < winb ) {
printf ( "TEAM 2 WINS\n" );
}
else {
printf ( "TIE\n" );
}
return EXIT_SUCCESS;
} /* ---------- end of function main ---------- */
看了一下别人的python代码,挺简洁。
#!/bin/python
team1 = input().replace('[', '7').replace('(', '6')
team2 = input().replace('[', '7').replace('(', '6')
s = 0
for i in range(0, len(team1), 2):
if team1[i] > team2[i]:
s += 1
elif team1[i] < team2[i]:
s -= 1
if team1[i] == '8' and team2[i] == '6':
s -= 2
if team1[i] == '6' and team2[i] == '8':
s += 2
if s > 0:
print("TEAM 1 WINS")
elif s < 0:
print("TEAM 2 WINS")
else:
print("TIE")
这个思路眼前一亮,把对应的字符赋值,比较,然后再修正。
C. Magnum Opus
同样的,开始我也没看懂,没错,是拉丁语。。。
官方题解说Google翻译一下这封信,可以发现这是一封很优美又充满讽刺的信。。
好吧,翻译之后也没看懂。需要注意前面的大写的罗马数字,然后猜想大概和配方的量有关系。
五种配方的量依次是:1 1 2 7 4
所以只需要让五种原料分别除以上面的五个数字,然后找到最小值,输出。
这得需要多丰富的想象力啊!!
#!/bin/python
a, b, c, d, e = list(map(int, input().split(' ')))
result = (int)(min(a/1, b/1, c/2, d/7, e/4))
print(result)
恩,用python写比较简单。
H. A + B Strikes Back
这道题嘛。绝。
官方题解说,提交的前五次系统是不会测试直接给WA!!!
我看到这句话就笑了啊!!!这也太有创意了吧,哈哈哈哈
#!/bin/python
a, b = list(map(int, input().split(' ')))
print(a+b)
不愧是April Fool’s Day,题目真有意思。。