当前位置:编程学习 > python >>

Python解决codeforces ---- 2

 
 第一题 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的值很小,暴力枚举两部分的值
 代码:
[python] 
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
 代码:
[python] 
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 易做图 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 易做图 of a positive area, but it is possible to construct a degenerate 易做图. It can be so, that it is impossible to construct a degenerate 易做图 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 易做图. Output SEGMENT if the first case cannot take place and it is possible to construct a degenerate 易做图. Output IMPOSSIBLE if it is impossible to construct any 易做图. Remember that
补充:Web开发 , Python ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,