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 ;
}

最新文章

  1. android onActivityResult无效或先执行或无回传问题
  2. 在canvas中使用html元素
  3. a标签创建超链接,利用a标签创建锚点
  4. no 'object' file generated
  5. java如何去调用C++的方法详解
  6. VS输入输出基本操作以及数据类型和类型转换
  7. PHP安装libevent扩展
  8. axure 母版 模板
  9. 快速界面:QML。
  10. hadoop job执行完的统计信息
  11. Mysql数据库一个小程序实现自动创建分表。
  12. java日期时间处理小结
  13. c++设计模式之状态模式
  14. Ural1109_Conference(二分图最大匹配/匈牙利算法/网络最大流)
  15. ArrayList 源码分析
  16. pom文件miss artifact com.sun:tools:jar:1.5.0:system问题
  17. loj6045 价
  18. flask form表单验证
  19. 蓝图Tips
  20. POJ 1661 (Help Jimmy )

热门文章

  1. python爬虫之路——初识爬虫三大库,requests,lxml,beautiful.
  2. .net 实现的上传下载,如果是图片就显示上传的图片
  3. codeforce Gym 100500E IBM Chill Zone (SG函数)
  4. ping请求超(iPV4)
  5. 在DataGridView控件中隔行换色
  6. PAT (Basic Level) Practise (中文)- 1012. 数字分类 (20)
  7. 【转】嵌入式操作系统VxWorks中TFFS文件系统的构建
  8. 【动态规划】bzoj1584: [Usaco2009 Mar]Cleaning Up 打扫卫生
  9. JDBC操作数据库的详细步骤
  10. 笔记--Day1--python基础1