Python解决codeforces ---- 2

简介:  第一题 4A A. Watermelon time limit per test 1 second memory limit per test 64 megabytes in...


 第一题 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 showed w kilos. 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 number w (1 ≤ w ≤ 100) — the weight of the watermelon bought by the boys.

Output

Print YES, if the boys can divide the watermelon into two parts, each of them weighing even number of kilos; and NO in 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 sends lbytes to each participant of the chat, where l is 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[i] == ':':
               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

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.

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

The first line of the input contains four space-separated positive integer numbers not exceeding 100 — lengthes of the sticks.

Output

Output TRIANGLE if it is possible to construct a non-degenerate triangle. Output SEGMENT if the first case cannot take place and it is possible to construct a degenerate triangle. Output IMPOSSIBLE if 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[i]),int(sticks[j]),int(sticks[k])):
               ans = "TRIANGLE"
            if ans == "IMPOSSIBLE" and judge(int(sticks[i]),int(sticks[j]),int(sticks[k])):
               ans = "SEGMENT"
print ans



目录
相关文章
|
应用服务中间件 nginx Python
Python解决codeforces ---- 7
 第一题 20A A. BerOS file system time limit per test 2 seconds memory limit per test 64 megabytes ...
1220 0
|
Python
Python解决codeforces ---- 6
 第一题 16A A. Flag time limit per test 2 seconds memory limit per test 64 megabytes input stan...
876 0
|
人工智能 Python
Python解决codeforces ---- 5
 第一题 13A A. Numbers time limit per test 1 second memory limit per test 64 megabytes input st...
1206 0
|
Python Go 网络架构
Python解决codeforces ---- 3
 第一题 7A A. Kalevitch and Chess time limit per test 2 seconds memory limit per test 64 megabytes ...
1096 0
|
人工智能 Python
Python解决codeforces ---- 4
 第一题 10A A. Power Consumption Calculation time limit per test 1 second memory limit per test 256...
1135 0
|
Python 分布式计算 定位技术
Python解决codeforces ---- 1
 第一题 1A A. Theatre Square time limit per test 2 seconds memory limit per test 64 megabytes ...
1004 0
|
17天前
|
存储 人工智能 数据处理
Python:编程的艺术与科学的完美交融
Python:编程的艺术与科学的完美交融
19 1
|
4天前
|
JSON 数据格式 开发者
pip和requests在Python编程中各自扮演着不同的角色
`pip`是Python的包管理器,用于安装、升级和管理PyPI上的包;`requests`是一个HTTP库,简化了HTTP通信,支持各种HTTP请求类型及数据交互。两者在Python环境中分别负责包管理和网络请求。
18 5
|
6天前
|
存储 Python 容器
Python高级编程
Python集合包括可变的set和不可变的frozenset,用于存储无序、不重复的哈希元素。创建集合可使用{}或set(),如`my_set = {1, 2, 3, 4, 5}`。通过add()添加元素,remove()或discard()删除元素,如`my_set.remove(3)`。
|
7天前
|
测试技术 Python
Python模块化方式编程实践
Python模块化编程提升代码质量,包括:定义专注单一任务的模块;使用`import`导入模块;封装函数和类,明确命名便于重用;避免全局变量降低耦合;使用文档字符串增强可读性;为每个模块写单元测试确保正确性;重用模块作为库;定期维护更新以适应Python新版本。遵循这些实践,可提高代码可读性、重用性和可维护性。
31 2