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 ...
1219 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...
1202 0
|
人工智能 Python
Python解决codeforces ---- 4
 第一题 10A A. Power Consumption Calculation time limit per test 1 second memory limit per test 256...
1133 0
|
Python Go 网络架构
Python解决codeforces ---- 3
 第一题 7A A. Kalevitch and Chess time limit per test 2 seconds memory limit per test 64 megabytes ...
1095 0
|
Python 分布式计算 定位技术
Python解决codeforces ---- 1
 第一题 1A A. Theatre Square time limit per test 2 seconds memory limit per test 64 megabytes ...
1004 0
|
13天前
|
安全 Java 数据处理
Python网络编程基础(Socket编程)多线程/多进程服务器编程
【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。
|
13天前
|
程序员 开发者 Python
Python网络编程基础(Socket编程) 错误处理和异常处理的最佳实践
【4月更文挑战第11天】在网络编程中,错误处理和异常管理不仅是为了程序的健壮性,也是为了提供清晰的用户反馈以及优雅的故障恢复。在前面的章节中,我们讨论了如何使用`try-except`语句来处理网络错误。现在,我们将深入探讨错误处理和异常处理的最佳实践。
|
17天前
|
缓存 监控 Python
解密Python中的装饰器:优雅而强大的编程利器
Python中的装饰器是一种强大而又优雅的编程工具,它能够在不改变原有代码结构的情况下,为函数或类添加新的功能和行为。本文将深入解析Python装饰器的原理、用法和实际应用,帮助读者更好地理解和利用这一技术,提升代码的可维护性和可扩展性。
|
6天前
|
安全 数据处理 开发者
《Python 简易速速上手小册》第7章:高级 Python 编程(2024 最新版)
《Python 简易速速上手小册》第7章:高级 Python 编程(2024 最新版)
19 1