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的值很小,暴力枚举两部分的值

 代码:

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
时间: 2024-07-30 14:52:44

Python解决codeforces ---- 2的相关文章

Python解决codeforces ---- 7

 第一题 20A A. BerOS file system time limit per test 2 seconds memory limit per test 64 megabytes input standard input output standard output The new operating system BerOS has a nice feature. It is possible to use any number of characters '/' as a deli

Python解决codeforces ---- 5

 第一题 13A A. Numbers time limit per test 1 second memory limit per test 64 megabytes input standard input output standard output Little Petya likes numbers a lot. He found that number 123 in base 16 consists of two digits: the first is 7 and the secon

Python解决codeforces ---- 6

 第一题 16A A. Flag time limit per test 2 seconds memory limit per test 64 megabytes input standard input output standard output According to a new ISO standard, a flag of every country should have a chequered field n × m, each square should be of one o

Python解决codeforces ---- 3

 第一题 7A A. Kalevitch and Chess time limit per test 2 seconds memory limit per test 64 megabytes input standard input output standard output A famous Berland's painter Kalevitch likes to shock the public. One of his last obsessions is chess. For more

Python解决codeforces ---- 1

 第一题 1A A. Theatre Square time limit per test 2 seconds memory limit per test 64 megabytes input standard input output standard output Theatre Square in the capital city of Berland has a rectangular shape with the size n × m meters. On the occasion o

Python解决codeforces ---- 4

 第一题 10A A. Power Consumption Calculation time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Tom is interested in power consumption of his favourite laptop. His laptop has three modes. In norm

应用Python解决一些实际问题

Python 是一种简洁优美的脚本语言,它的诸多优点使它在完成某些任务时轻松自如.本文通过几个具体的例子阐明了这一点. 关于Python Python 是一种简洁优美的编程语言,它具有面向对象的特征,较好的粘合其他语言的能力及跨平台性.然而我认为同样重要的是, 它简单易学,书写代码简洁快速.此外,Python 提供了较多的模快,包含了相当多的功能,所以只要有一个可行的想法,那么用 Python 解决起来会是比较容易的.下面几个例子都源于我遇到的一些实际问题.借助于 Python,这些问题的解决都

python解决Fedora解压zip时中文乱码的方法_python

前言 很多时候在windows下压缩文件没问题,但是到了Linux下,出现乱码,很常见.以前在Ubuntu下,用`unzip -O GBK filename.zip` 就可以搞定. 换了Fedora后,暂时没发现乱码的压缩文件.晚上下载一本书的光盘,又碰到了乱码.尝试之前的方法没成功.看了下unzip的help,没-O那个参数了== 刚好找到一个用python解决的办法,分享下. 新建一个`.py`后缀的文件,直接复制粘贴代码: #!/usr/bin/env python # -*- codin

用python解决project euler中的题目

寒假期间学习了python,现在基本上就能上手使用它来解决project euler里面的题目了,用python真的是没得说的,一个字"赞".在C++中需要用一大堆代码实现的算法,在python中,只需要那么短短几行.而且还有惊艳的运行速度.借用<可爱的python>里面的一句话:"人生苦短,我用python". [project euler 055] 求经过一系列规则不能得到回文数的数的个数.题目在此: If we take 47, reverse a