2021-02-25

2021年2月24日

今天的比赛结果

感觉很失败

首先看一下D题

蓝桥选拔赛终于开始了,话不多说A题吧。
从前从前有一个正整数n,你需要找到一个素数x和一个合数y使x+y=n成立,这样就可以双剑合并了。
素数是一个大于1的自然数,它的因数只有1与它自己本身。非素数且大于1的自然数称为合数。当然,1不是素数也不是合数。

Input

输入包含多个样例。输入的第一行包含一个整数T (1≤T≤10^5),样例数目。

对于每个样例,输入的每一行都包含一个整数n (1≤n≤10^9).

Output

对于每一种情况,打印两个整数。x和y中1≤x,y<n。
如果有多个有效答案,随便您打印任何一个。如果没有有效答案,则打印整数−1。

Example

Input

3
4
6
7

Output

-1
2 4
3 4

本以为是素筛 然后 遍历素数 然后看另一个是不是合数 但是很明显 1e9的数组实在是太大了 没办法存起来 就纠结了大概一个小时 最终还是没有想出来

b题也是没想通呢

这里找不到我代码了 因为是比赛所有 为了快 都没有创建新文件了 呜呜呜

唐风 和 秦仁 喜欢玩游戏。现在,他们准备玩一个新的好玩的游戏。他们把 n 块汉堡,沿直线放好。唐风 开始从左向右逐块吃汉堡,同时 秦仁 从右向左。对于每个汉堡,玩家吃掉它所需的时间是已知的 (唐风 和 秦仁 以相等的速度吃它们)。当玩家吃完一个汉堡时,他立即开始吃另一块。不允许在同一时刻吃两块汉堡,不允许吃后剩余一部分,也不允许暂停吃汉堡。如果两个玩家同时开始吃同一块汉堡,那么 秦仁会把它留给 唐风,毕竟秦仁是表舅嘛。

现在问他们两个将各吃掉多少个汉堡?

输入

第一行包含一个整数 n (1 ≤ n ≤ 105) — 桌子上的汉堡数目。第二行包含一个序列 t1, t2, ..., tn (1 ≤ ti ≤ 1000),其中 ti 是吃完第 i 块汉堡 (按从左向右的顺序) 所需的时间 (按秒)。

输出

打印两个数字 a 和 b,其中 a 是 唐风 吃掉的汉堡数目,且 b 是 秦仁 吃掉的汉堡数目。

示例

输入

5
2 9 8 2 7

输出

2 3

思路是先前缀和 

然后 判断前缀和数组当中 哪个数的2倍>a[n]

这个下标-1就答案 然后n-这个答案就表舅的答案(让出一个给表舅吃)

如果等于了a[n]那就不用让也就不要减去1

然后就是人潮汹涌

宴会上人潮汹涌,人来人往

已知宴会上有 n 个人

每个人认识宴会上的一些人,如果 a 认识 b,我们就说 a 和 b 的疏远度是 1,特别地,a 和 a 的疏远度是 0

a 和 c 可以通过一个同时认识他们俩的 b 作介绍来互相认识,这时,我们说 a 和 c 的疏远度是 a 和 b 的疏远度加上 b 和 c 疏远度

选定两个人,问如何作介绍,使得 a 和 b 的疏远度最小?无法介绍来认识输出 !

Input

第一行两个正整数 n 和 m,表示宴会的人数,和有多少对人互相认识 接下来 m 行,每行两个数 p,q,表示 p 和 q 互相认识 接下来一行两个正整数 a,b,表示询问 a 和 b 的最小疏远度

Output

可以认识输出最小疏远度,否则输出 !

Sample Input

3 2
1 2
1 3
2 3

Sample Output

2

太傻了 我用并查集 

这个明明是一个最短路径

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值