Table of Contents A. Generous KefaB. GodsendC. Leha and Function

A. Generous Kefa

One day Kefa found n baloons. For convenience, we denote color of i-th baloon as s**i — lowercase letter of the Latin alphabet. Also Kefa has k friends. Friend will be upset, If he get two baloons of the same color. Kefa want to give out all baloons to his friends. Help Kefa to find out, can he give out all his baloons, such that no one of his friens will be upset — print «YES», if he can, and «NO», otherwise. Note, that Kefa's friend will not upset, if he doesn't get baloons at all.

Input

The first line contains two integers n and k (1 ≤ n, k ≤ 100) — the number of baloons and friends.

Next line contains string s — colors of baloons.

Output

Answer to the task — «YES» or «NO» in a single line.

You can choose the case (lower or upper) for each letter arbitrary.

Examples

input

4 2
aabb

output

YES

input

6 3
aacaab

output

NO

Note

In the first sample Kefa can give 1-st and 3-rd baloon to the first friend, and 2-nd and 4-th to the second.

In the second sample Kefa needs to give to all his friends baloons of color a, but one baloon will stay, thats why answer is «NO».

题意:将气球全部发给一些人,每个人不能收到相同颜色的气球,是否可以将气球全部发出去。

#include <bits/stdc++.h>

using namespace std;

char str[105];
int num[30]; int main(int argc, char const *argv[])
{
int n,k;
scanf("%d%d",&n,&k);
scanf("%s",str); for(int i=0;i<n;i++)
num[str[i]-'a']++;
bool flag = true;
for(int i=0;i <26;i++) {
if(num[i]>k) {
flag = false;
break;
} } if(flag)
puts("YES");
else puts("NO"); return 0;
}

B. Godsend

Leha somehow found an array consisting of n integers. Looking at it, he came up with a task. Two players play the game on the array. Players move one by one. The first player can choose for his move a subsegment of non-zero length with an odd sum of numbers and remove it from the array, after that the remaining parts are glued together into one array and the game continues. The second player can choose a subsegment of non-zero length with an even sum and remove it. Loses the one who can not make a move. Who will win if both play optimally?

Input

First line of input data contains single integer n (1 ≤ n ≤ 106) — length of the array.

Next line contains n integers a1, a2, ..., an (0 ≤ ai ≤ 109).

Output

Output answer in single line. "First", if first player wins, and "Second" otherwise (without quotes).

Examples

input

4
1 3 2 3

output

First

input

2
2 2

output

Second

Note

In first sample first player remove whole array in one move and win.

In second sample first player can't make a move and lose.

题意:博弈,给一个数列,第一个人先手,每次选取一个奇数区间拿走,第二个后手,每次选取一个偶数区间拿走,谁不能动,谁输。

分析:数据量很大,而且不能区间求和,说明这和奇偶相关。

当整个区间为奇数时,先手全部拿走。

当整个区间有奇数个奇数(先手全部拿走)。

当整个区间有偶数个奇数(先手拿的只剩下一个奇数。后手却只能拿不走那个奇数,先手第二次全部拿走)

#include <bits/stdc++.h>

using namespace std;

const int maxn = 1e6+5;
int a[maxn]; int main(int argc, char const *argv[])
{
int n;
cin>>n; long long sum = 0;
int u;
int cnt1,cnt2;
cnt1 = cnt2 = 0;
for(int i=0; i < n; i++) {
scanf("%d",&u);
a[i] = u%2;
sum+=a[i]; if(a[i]%2) cnt1++;
else cnt2++;
} if(sum%2)
puts("First");
else {
if(cnt1>0)
puts("First");
else puts("Second");
}
return 0;
}

C. Leha and Function

Leha like all kinds of strange things. Recently he liked the function F(n, k). Consider all possible k-element subsets of the set [1, 2, ..., n]. For subset find minimal element in it. F(n, k) — mathematical expectation of the minimal element among all k-element subsets.

But only function does not interest him. He wants to do interesting things with it. Mom brought him two arrays A and B, each consists of m integers. For all i, j such that 1 ≤ i, j ≤ m the condition Ai ≥ Bj holds. Help Leha rearrange the numbers in the array A so that the sum is maximally possible, where A' is already rearranged array.

Input

First line of input data contains single integer m (1 ≤ m ≤ 2·105) — length of arrays A and B.

Next line contains m integers a1, a2, ..., am (1 ≤ ai ≤ 109) — array A.

Next line contains m integers b1, b2, ..., bm (1 ≤ bi ≤ 109) — array B.

Output

Output m integers a'1, a'2, ..., a'm — array A' which is permutation of the array A.

Examples

input

5
7 3 5 3 4
2 1 3 2 3

output

4 7 3 5 3

input

7
4 6 5 8 8 2 6
2 1 2 2 1 1 2

output

2 6 4 5 8 8 6

题意:

F(n,k) 函数,从 1~n 个数中,挑取 k 个数,然后取这个集合中最小的值,F(n,k),就是这个最小值的期望。

推导,F(n,k)=\frac{n+1}{k+1} 没仔细去推。

然后,\sum_{i=1}^mF(A_i',B_i) 最大时,A数组重排。

贪心,A中最大的元素匹配B中最小的元素。

#include <bits/stdc++.h>

using namespace std;
const int maxn = 200005; struct node {
int x;
int id;
}a[maxn],b[maxn]; bool cmp(node a,node b) {
return a.x < b.x;
} bool cmp2(node a,node b) {
return a.x > b.x;
} bool cmp3(node a,node b) {
return a.id < b.id;
} int main() { int m;
scanf("%d",&m);
for(int i=0; i < m; i++) {
scanf("%d",&a[i].x);
a[i].id = i;
} for(int i=0; i < m; i++) {
scanf("%d",&b[i].x);
b[i].id = i;
} sort(a,a+m,cmp2);
sort(b,b+m,cmp); for(int i=0; i < m; i++)
a[i].id = b[i].id; sort(a,a+m,cmp3);
for(int i=0; i < m; i++)
printf("%d ",a[i].x); return 0;
}

Codeforces Round #429的更多相关文章

  1. CodeForces 840C - On the Bench | Codeforces Round #429 (Div. 1)

    思路来自FXXL中的某个链接 /* CodeForces 840C - On the Bench [ DP ] | Codeforces Round #429 (Div. 1) 题意: 给出一个数组, ...

  2. CodeForces 840B - Leha and another game about graph | Codeforces Round #429(Div 1)

    思路来自这里,重点大概是想到建树和无解情况,然后就变成树形DP了- - /* CodeForces 840B - Leha and another game about graph [ 增量构造,树上 ...

  3. CodeForces 840A - Leha and Function | Codeforces Round #429 (Div. 1)

    /* CodeForces 840A - Leha and Function [ 贪心 ] | Codeforces Round #429 (Div. 1) A越大,B越小,越好 */ #includ ...

  4. codeforces Round#429 (Div2)

    2017-08-20 10:00:37 writer:pprp 用头文件#include <bits/stdc++.h>很方便 A. Generous Kefa codeforces 84 ...

  5. 【Codeforces Round #429 (Div. 2) A】Generous Kefa

    [Link]:http://codeforces.com/contest/841/problem/A [Description] [Solution] 模拟,贪心,每个朋友尽量地多给气球. [Numb ...

  6. Codeforces Round #429 (Div. 2/Div. 1) [ A/_. Generous Kefa ] [ B/_. Godsend ] [ C/A. Leha and Function ] [ D/B. Leha and another game about graph ] [ E/C. On the Bench ] [ _/D. Destiny ]

    PROBLEM A/_ - Generous Kefa 题 OvO http://codeforces.com/contest/841/problem/A cf 841a 解 只要不存在某个字母,它的 ...

  7. 【Codeforces Round #429 (Div. 2) C】Leha and Function

    [Link]:http://codeforces.com/contest/841/problem/C [Description] [Solution] 看到最大的和最小的对应,第二大的和第二小的对应. ...

  8. 【Codeforces Round #429 (Div. 2) B】 Godsend

    [Link]:http://codeforces.com/contest/841/problem/B [Description] 两个人轮流对一个数组玩游戏,第一个人可以把连续的一段为奇数的拿走,第二 ...

  9. Codeforces Round #429 (Div. 2) 补题

    A. Generous Kefa 题意:n个气球分给k个人,问每个人能否拿到的气球都不一样 解法:显然当某种气球的个数大于K的话,就GG了. #include <bits/stdc++.h> ...

  10. Codeforces Round #429 Div. 1

    A:甚至连题面都不用仔细看,看一下样例就知道是要把大的和小的配对了. #include<iostream> #include<cstdio> #include<cmath ...

随机推荐

  1. 华为 p8上配置outllook,同步日历/邮件

    在网上找了半天,也没有找到合适的方法,在outlook官网上终于找到了配置方式 一种方式是使用outlook的手机应用.(此处省略) 另外一种方式是使用手机自带的邮件/日历应用(见下面操作方法) 如果 ...

  2. Android IntentFilter 匹配原则浅析

    1 Intent分为两大类,显式和隐式. 显式事件,就是指通过 component Name 属性,明确指定了目标组件的事件. 比如我们新建一个Intent,指名道姓的说,此事件用于启动名为" ...

  3. ssh免密码登录快速配置方法

    环境需求: 两台Linux主机   A (192.168.3.101)和 B(192.168.3.102),如何使用主机 A 免密码登录 主机B ? 配置步骤: 首页登录主机 A ,在主机A上生成自己 ...

  4. pat1005. Spell It Right (20)

    1005. Spell It Right (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Given ...

  5. Beautiful Soup库介绍

    开始前需安装Beautiful Soup 和lxml. Beautiful Soup在解析时依赖解析器,下表列出bs4支持的解析器. 解析器 使用方法 Python标准库 BeautifulSoup( ...

  6. java去掉String里面的空格、换行符等

    package com.ynet.utils; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Create ...

  7. 删除table表格行

    function getRowObj(obj) {   while(obj.tagName.toLowerCase()!="tr")    // toLowerCase转化小写 { ...

  8. C#IO流文件操作

    文件流 创建文件流 读写文件的第一步就是创建文件流,流是一个用于数据传输的个对象,它是FileStream类型,在创建一个文件流是需要在他的构造中指定参数 语法: FileStream 文件流对象=n ...

  9. 项目搭建系列之二:SpringMVC框架下配置MyBatis

    1.什么是MyBatis? MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis ...

  10. js Base64与字符串互转

    1.base64加密 在页面中引入base64.js文件,调用方法为: <!DOCTYPE HTML> <html> <head> <meta charset ...