设为首页 收藏本站
查看: 508|回复: 0

[经验分享] Python解决codeforces ---- 2

[复制链接]

尚未签到

发表于 2017-4-29 13:46:43 | 显示全部楼层 |阅读模式
  

  第一题 4A


A. Watermelon


time limit per test

1 second


memory limit per test

64 megabytes


input

standard input


output

standard output




One hot summer day Pete and his friend Billy decided to buy a watermelon. They chose the biggest and the ripest one, in their opinion. After that the watermelon was weighed, and the scales showedwkilos.
They rushed home, dying of thirst, and decided to divide the berry, however they faced a hard problem.


Pete and Billy are great fans of even numbers, that's why they want to divide the watermelon in such a way that each of the two parts weighs even number of kilos, at the same time it is not obligatory that the parts are equal. The
boys are extremely tired and want to start their meal as soon as possible, that's why you should help them and find out, if they can divide the watermelon in the way they want. For sure, each of them should get a part of positive weight.




Input


The first (and the only) input line contains integer numberw(1 ≤ w ≤ 100)
— the weight of the watermelon bought by the boys.




Output


PrintYES, if the boys can divide the watermelon into two parts, each of them weighing even number of kilos; andNOin
the opposite case.




Sample test(s)


input


8



output


YES







Note


For example, the boys can divide the watermelon into two parts of 2 and 6 kilos respectively (another variant — two parts of 4 and 4 kilos).













  
  题意:给定一个数w,问能否分成两部分并且每部份都是偶数
  思路:w的值很小,暴力枚举两部分的值
  代码:

n = int(raw_input())
isOk = False
for i in range(2,n):
if i%2 == 0 and (n-2)%2 == 0:
isOk = True
break
if isOk:
print "YES"
else:
print "NO"
  

  第二题 5A

A. Chat Server's Outgoing Traffic


time limit per test

1 second


memory limit per test

64 megabytes


input

standard input


output

standard output




Polycarp is working on a new project called "Polychat". Following modern tendencies in IT, he decided, that this project should contain chat as well. To achieve this goal, Polycarp has spent several hours in front of his laptop
and implemented a chat server that can process three types of commands:





  • Include a person to the chat ('Add'command).
  • Remove a person from the chat ('Remove'command).
  • Send a message from a person to all people, who are currently in the chat, including the one, who sends the message ('Send'command).




Now Polycarp wants to find out the amount of outgoing traffic that the server will produce while processing a particular set of commands.

Polycarp knows that chat server sends no traffic for 'Add' and 'Remove' commands. When 'Send' command is processed, server sendslbytes to each
participant of the chat, wherelis the length of the message.


As Polycarp has no time, he is asking for your help in solving this problem.



Input


Input file will contain not more than 100 commands, each in its own line. No line will exceed 100 characters. Formats of the commands will be the following:




  • +<name>for'Add'command.
  • -<name>for'Remove'command.
  • <sender_name>:<message_text>for'Send'command.




<name>and<sender_name>is a non-empty sequence of Latin letters
and digits.<message_text>can contain letters, digits and spaces, but can't start or end with a space.<message_text>can
be an empty line.


It is guaranteed, that input data are correct, i.e. there will be no'Add'command if person with such a name is already in the chat, there will
be no'Remove'command if there is no person with such a name in the chat etc.


All names are case-sensitive.



Output


Print a single number — answer to the problem.



Sample test(s)


input


+Mike
Mike:hello
+Kate
+Dmitry
-Dmitry
Kate:hi
-Kate



output


9



input


+Mike
-Mike
+Mike
Mike:Hi   I am here
-Mike
+Kate
-Kate



output


14





  
  题意:有三种命令,"+name"是添加一个人,"-name"是删除一个人,"name:message"是这个人发了message给所有人,问最后总的发送的字节数
  思路:直接暴力求解,利用Python的list
  代码:
  

dict = []
sum = 0
# input
while True:
try:
str = raw_input()
except:
break
if str[0] == '+':
dict.append(str[1:])
elif str[0] == '-':
dict.remove(str[1:])
else:
length = len(str)  
for i in range(length):
if str == ':':
sum += (length-(i+1))*(len(dict))
break
print sum

  

  第三题 6A
  


A. Triangle

time limit per test

2 seconds

memory limit per test

64 megabytes

input

standard input

output

standard output



[size=1em]
Johnny has a younger sister Anne, who is very clever and smart. As she came home from the kindergarten, she told his brother about the task that her kindergartener asked her to solve. The task was just to construct a triangle out of four sticks of different
colours. Naturally, one of the sticks is extra. It is not allowed to break the sticks or use their partial length. Anne has perfectly solved this task, now she is asking Johnny to do the same.
[size=1em]
The boy answered that he would cope with it without any difficulty. However, after a while he found out that different tricky things can occur. It can happen that it is impossible to construct a triangle of a positive area, but it is possible to construct a
degenerate triangle. It can be so, that it is impossible to construct a degenerate triangle even. As Johnny is very lazy, he does not want to consider such a big amount of cases, he asks you to help him.



Input

[size=1em]
The first line of the input contains four space-separated positive integer numbers not exceeding 100 — lengthes of the sticks.



Output

[size=1em]
OutputTRIANGLEif it is possible to construct a non-degenerate triangle. OutputSEGMENTif
the first case cannot take place and it is possible to construct a degenerate triangle. OutputIMPOSSIBLEif it is impossible to construct any triangle. Remember
that you are to use three sticks. It is not allowed to break the sticks or use their partial length.



Sample test(s)

input

4 2 1 3



output

TRIANGLE



input

7 2 2 4



output

SEGMENT



input

3 5 9 1



output

IMPOSSIBLE



















  题意:给定4条线段,问能否组成三角形,如果可以输出"TRIANGLE",如果不能组成三角形但是会退化输出"SEGMENT",否则输出"IMPOSSIBLE"
  思路:直接暴力枚举
  代码:
  


sticks = raw_input().split()
# 判断能否组成三角形
def isOk(x , y , z):
if x+y > z and x+z > y and y+z > x:
return True
return False
# 判断是否会退化
def judge(x , y , z):
if x+y == z or x+z == y or y+z == x:
return True
return False
# 求ans
ans = "IMPOSSIBLE"
for i in range(4):
for j in range(i+1,4):
for k in range(j+1,4):
if isOk(int(sticks),int(sticks[j]),int(sticks[k])):
ans = "TRIANGLE"
if ans == "IMPOSSIBLE" and judge(int(sticks),int(sticks[j]),int(sticks[k])):
ans = "SEGMENT"
print ans

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-370840-1-1.html 上篇帖子: Python的列表(list)介绍 下篇帖子: python练习贴03 修改注册表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表