ACM思维题训练集合

The Little Elephant has two permutations a and b of length n, consisting of numbers from 1 to n, inclusive. Let’s denote the i-th (1 ≤ i ≤ n) element of the permutation a as ai, the j-th (1 ≤ j ≤ n) element of the permutation b — as bj.

The distance between permutations a and b is the minimum absolute value of the difference between the positions of the occurrences of some number in a and in b. More formally, it’s such minimum |i - j|, that ai = bj.

A cyclic shift number i (1 ≤ i ≤ n) of permutation b consisting from n elements is a permutation bibi + 1… bnb1b2… bi - 1. Overall a permutation has n cyclic shifts.

The Little Elephant wonders, for all cyclic shifts of permutation b, what is the distance between the cyclic shift and permutation a?

Input

The first line contains a single integer n (1 ≤ n ≤ 105) — the size of the permutations. The second line contains permutation a as n distinct numbers from 1 to n, inclusive. The numbers are separated with single spaces. The third line contains permutation b in the same format.

Output

In n lines print n integers — the answers for cyclic shifts. Print the answers to the shifts in the order of the shifts’ numeration in permutation b, that is, first for the 1-st cyclic shift, then for the 2-nd, and so on.

Examples

Input

2

1 2

2 1

Output

1

0

Input

4

2 1 3 4

3 4 2 1

Output

2

1

0

1

这个题预处理一下初始的dis,然后用mutiset模拟即可

#include <bits/stdc++.h>
using namespace std;
const int maxn = 100005;
int a[maxn],b[maxn];
multiset<int> ms;
int main()
{
int n, x;
scanf("%d", &n);
for (int i = 0; i < n; ++i)
{
scanf("%d", &x);
a[x] = i;
}
for (int i = 0; i < n; ++i)
{
scanf("%d", &b[i]);
ms.insert(i - a[b[i]]);
}
for (int i = 0; i < n; ++i)
{
auto po = ms.lower_bound(i);
int ans = 0X3F3F3F3F;
if (po != ms.end())
ans = min(ans, *po - i);
else if (po != ms.begin())
ans = min(ans, i - *(--po));
printf("%d\n", ans);
po = ms.find(i - a[b[i]]);
ms.erase(po);
ms.insert(i - a[b[i]] + n);
}
}

最新文章

  1. Theano Graph Structure
  2. Sql日期时间格式转换
  3. 临时表VS表变量--因地制宜,合理使用
  4. sqlserver -- 学习笔记(三)解决php连接sqlserver2005视图时显示“异类查询要求为连接设置 ANSI_NULLS 和 ANSI_WARNINGS 选项”的问题
  5. ionic之AngularJS扩展 移动开发(视图导航一)
  6. GOF设计模式之1:单例设计模式
  7. vsftpd允许root用户登录
  8. javascripte (三) 改变html图像
  9. KVM虚拟化网络优化技术总结
  10. redis五种基本类型CRUD操作
  11. 如何用Redis做LRU-Cache
  12. 开源 rafy4j 框架
  13. zabbix环境安装搭建
  14. idea的破解及相关安装
  15. [USACO08OPEN]寻宝之路Clear And Present Danger
  16. 怎样从外网访问内网CouchDB数据库
  17. 统计php-fpm内存占用
  18. deepin使用笔记-解决蓝牙设备开机自动开启的问题
  19. BZOJ3750[POI2015]Pieczęć——链表
  20. php 更新array键值

热门文章

  1. 微信小程序中使用template
  2. Django 已生成数据时怎么查询数据库
  3. Python操作rabbitmq系列(四):根据类型订阅消息
  4. Linux C++ 网络编程学习系列(2)——多路IO之select实现
  5. posix系统线程调度-设置线程优先级
  6. AJ学IOS 之微博项目实战(3)微博主框架-UIImage防止iOS7之后自动渲染_定义分类
  7. Personal Photo Experience Proposal
  8. [Yii2] 快速套模板,加载JS,CSS(HTML标签&lt;base&gt;)
  9. Python数据预处理:使用Dask和Numba并行化加速
  10. Java 动态编译--DynamicCompiler