A. Splits
time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

Let's define a split of n as a nonincreasing sequence of positive integers, the sum of which is n.

For example, the following sequences are splits of 8: [4, 4], [3, 3, 2], [2, 2, 1, 1, 1, 1], [5, 2, 1].

The following sequences aren't splits of 8: [1, 7], [5, 4], [11,  - 3], [1, 1, 4, 1, 1].

The weight of a split is the number of elements in the split that are equal to the first element. For example, the weight of the split [1, 1, 1, 1, 1] is 5, the weight of the split [5, 5, 3, 3, 3] is 2 and the weight of the split [9] equals 1.

For a given n, find out the number of different weights of its splits.

Input

The first line contains one integer n (1 ≤ n ≤ 109).

Output

Output one integer — the answer to the problem.

Examples
input

Copy
7
output

Copy
4
input

Copy
8
output

Copy
5
input

Copy
9
output

Copy
5
Note

In the first sample, there are following possible weights of splits of 7:

Weight 1: []

Weight 2: [, 1]

Weight 3: [, 1]

Weight 7: []

把一个数分为不同的集合(元素可以重复),和为n

n是奇数,长度为n的,n/2+1,。。。1(长度为2不存在)

n是偶数,长度为n,长度为n/2。。。1(均可以存在)

所以结论就是n/2+1

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
int n;
cin>>n;
cout<<n/+;
return ;
}
B. Messages
time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

There are n incoming messages for Vasya. The i-th message is going to be received after ti minutes. Each message has a cost, which equals to A initially. After being received, the cost of a message decreases by B each minute (it can become negative). Vasya can read any message after receiving it at any moment of time. After reading the message, Vasya's bank account receives the current cost of this message. Initially, Vasya's bank account is at 0.

Also, each minute Vasya's bank account receives C·k, where k is the amount of received but unread messages.

Vasya's messages are very important to him, and because of that he wants to have all messages read after T minutes.

Determine the maximum amount of money Vasya's bank account can hold after T minutes.

Input

The first line contains five integers nABC and T (1 ≤ n, A, B, C, T ≤ 1000).

The second string contains n integers ti (1 ≤ ti ≤ T).

Output

Output one integer  — the answer to the problem.

Examples
input

Copy
4 5 5 3 5
1 5 5 4
output

Copy
20
input

Copy
5 3 1 1 3
2 2 2 1 1
output

Copy
15
input

Copy
5 5 3 4 5
1 2 3 4 5
output

Copy
35
Note

In the first sample the messages must be read immediately after receiving, Vasya receives A points for each message, n·A = 20 in total.

In the second sample the messages can be read at any integer moment.

In the third sample messages must be read at the moment T. This way Vasya has 1, 2, 3, 4 and 0 unread messages at the corresponding minutes, he gets 40 points for them. When reading messages, he receives (5 - 4·3) + (5 - 3·3) + (5 - 2·3) + (5 - 1·3) + 5 =  - 5 points. This is 35 in total.

昨天晚上没有这个Note啊,毒瘤

所以就是看下(T-t[i])*(c-b)的正负啊,%%%聚聚

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
long long ans;
int t[];
int main()
{
int n,a,b,c,T;
cin>>n>>a>>b>>c>>T;
for(int i=;i<=n;i++)
cin>>t[i];
for(int i=;i<=n;i++)
if((T-t[i])*(c-b)<=)
ans+=a;
else
ans+=a+(T-t[i])*(c-b);
cout<<ans;
return ;
}
C. Alternating Sum
time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

You are given two integers aa and bb. Moreover, you are given a sequence s0,s1,…,sns0,s1,…,sn. All values in ss are integers 11 or −1−1. It's known that sequence is kk-periodic and kk divides n+1n+1. In other words, for each k≤i≤nk≤i≤n it's satisfied that si=si−ksi=si−k.

Find out the non-negative remainder of division of n∑i=0sian−ibi∑i=0nsian−ibi by 109+9109+9.

Note that the modulo is unusual!

Input

The first line contains four integers n,a,bn,a,b and kk (1≤n≤109,1≤a,b≤109,1≤k≤105)(1≤n≤109,1≤a,b≤109,1≤k≤105).

The second line contains a sequence of length kk consisting of characters '+' and '-'.

If the ii-th character (0-indexed) is '+', then si=1si=1, otherwise si=−1si=−1.

Note that only the first kk members of the sequence are given, the rest can be obtained using the periodicity property.

Output

Output a single integer — value of given expression modulo 109+9109+9.

Examples
input

Copy
2 2 3 3
+-+
output

Copy
7
input

Copy
4 1 5 1
-
output

Copy
999999228
Note

In the first example:

(n∑i=0sian−ibi)(∑i=0nsian−ibi) = 2230−2131+20322230−2131+2032 = 7

In the second example:

(n∑i=0sian−ibi)=−1450−1351−1252−1153−1054=−781≡999999228(mod109+9)(∑i=0nsian−ibi)=−1450−1351−1252−1153−1054=−781≡999999228(mod109+9).

等比数列啊,但是等比数列的比可以是1,记得判断

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll MD=1e9+;
ll po(ll a,ll b)
{
ll ans=;
while(b)
{
if(b&)ans=ans*a%MD;
b>>=,a=a*a%MD;
}
return ans;
}
int main()
{
ll n,a,b,k;
cin>>n>>a>>b>>k;
string s;
cin>>s;
ll cur=;
for(int i=;i<k;i++)
{
if(s[i]=='+')cur=(cur+po(a,n-i)*po(b,i)%MD)%MD;
else cur=(cur-po(a,n-i)*po(b,i)%MD+MD)%MD;
}
ll t=po(a,k*(MD-)%(MD-))*po(b,k)%MD;
if(t==)
cout<<cur*((n+)/k)%MD;
else
cout<<cur*po(t-,MD-)%MD*(po(t,(n+)/k)-)%MD;
return ;
}

Tinkoff Internship Warmup Round 2018 and Codeforces Round #475 (Div. 2)的更多相关文章

  1. Tinkoff Internship Warmup Round 2018 and Codeforces Round #475 (Div. 1) 963B 964D B Destruction of a Tree

    题 OvO http://codeforces.com/contest/963/problem/B CF 963B 964D 解 对于题目要求,显然一开始的树,要求度数为偶数的节点个数为奇数个,通过奇 ...

  2. Tinkoff Internship Warmup Round 2018 and Codeforces Round #475 (Div. 1)D. Frequency of String

    题意:有一个串s,n个串模式串t,问s的子串中长度最小的包含t k次的长度是多少 题解:把所有t建ac自动机,把s在ac自动机上匹配.保存每个模式串在s中出现的位置.这里由于t两两不同最多只有xsqr ...

  3. Tinkoff Internship Warmup Round 2018 and Codeforces Round #475 (Div. 1)

    A. Alternating Sum 就是个等比数列,特判公比为 $1$ 的情况即可. #include <bits/stdc++.h> using namespace std; ; ; ...

  4. CodeForces 837D - Round Subset | Educational Codeforces Round 26

    /* CodeForces 837D - Round Subset [ DP ] | Educational Codeforces Round 26 题意: 选k个数相乘让末尾0最多 分析: 第i个数 ...

  5. Codeforces 932 A.Palindromic Supersequence (ICM Technex 2018 and Codeforces Round #463 (Div. 1 + Div. 2, combined))

    占坑,明天写,想把D补出来一起写.2/20/2018 11:17:00 PM ----------------------------------------------------------我是分 ...

  6. ICM Technex 2018 and Codeforces Round #463 (Div. 1 + Div. 2, combined) A

    2018-02-19 A. Palindromic Supersequence time limit per test 2 seconds memory limit per test 256 mega ...

  7. Divide by Zero 2018 and Codeforces Round #474 (Div. 1 + Div. 2, combined)

    思路:把边看成点,然后每条边只能从下面的边转移过来,我们将边按照u为第一关键字,w为第二关键字排序,这样就能用线段树维护啦. #include<bits/stdc++.h> #define ...

  8. ICM Technex 2018 and Codeforces Round #463 (Div. 1 + Div. 2, combined)

    靠这把上了蓝 A. Palindromic Supersequence time limit per test 2 seconds memory limit per test 256 megabyte ...

  9. Codeforces 932 C.Permutation Cycle-数学 (ICM Technex 2018 and Codeforces Round #463 (Div. 1 + Div. 2, combined))

    C. Permutation Cycle   time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

随机推荐

  1. Android中,Broadcas介绍

    什么是广播 在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制.我们拿广播电台来做个比方.我们平常使用收音机收音是这样的:许许多多不同的广播电台通过特定的频率来发送他们 ...

  2. Swing---WindowConstants

    Java桌面开发过程中,很多人都写过类似下面的代码. import javax.swing.JFrame; public class SimpleFrame { public static void ...

  3. 数据库之存储过程-- 基于MySQL

    存储过程基本语法 create procedure procedure_name  [;number] [{@parameter data_type}[varying][=default][outpu ...

  4. 对卷积(convolution)的理解

    参考文章 https://www.jianshu.com/p/daaaeb718aed https://blog.csdn.net/bitcarmanlee/article/details/54729 ...

  5. JavaScript_7_运算符

    1. 算术运算符 2. 赋值运算符 3. 用于字符串的+运算 如果把字符串与数字相加,结果将成为字符串 <!DOCTYPE html> <html> <head> ...

  6. [中文翻译] ASP.NET 5 简介(Introducing ASP.NET 5,原作ScottGu 2015/2/23)

    本文出处  [中文翻译] ASP.NET 5 简介(Introducing ASP.NET 5,原作ScottGu 2015/2/23) 这是我的文章备份 http://www.dotblogs.co ...

  7. EF生成的实体映射含义

    如图: 组合效果: LEFT JOIN 效果: this.HasOptional(t => t.子表) .WithMany(t => t.主表) .HasForeignKey(d => ...

  8. [CV笔记]图像特征提取三大法宝:HOG特征,LBP特征,Haar特征

    (一)HOG特征 1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和 ...

  9. ansible 通过堡垒机/跳板机 访问目标机器需求实战(ssh agent forward)

    一. 需求背景: 在我们使用ansible的过程中经常会遇到这样的情况,我们要管理的机器都在内网中,这些内网机器的登录都是通过跳板机或者堡垒机登录.我们的ansible机器不能直接管理到这些后端的机器 ...

  10. sum特殊用法

    在python中,list可以存储False和True a = [False] python的sum除了可以加数字,还可以计算列表中False,True的个数,默认是计算False个数 >> ...