最近迈克忙着考前复习,他希望通过出门浮躁来冷静一下。
迈克所在的城市包含N个可以浮躁的地方,分别编号为1..N。通常迈克在家也很浮躁,所以说他家属于可以浮躁的地方并且编号为1.迈克从家出发,去一些可以浮躁的地方。迈克从第i个可以浮躁的地方到第j个可以浮躁的地方需要消耗abs(i-j)点精力。迈克花费的精力点数是这样算的,比如他去一组地方p1=1,p2,...,pk就需要点精力。
当然,如果木有捷径的话走路会很无聊。无论两个地方相隔多远,走捷径的话迈克都只需要消耗1点精力。迈克所在的城市里由N条捷径。第i条捷径表示这条捷径连接了第i处和第ai(i<=ai<=ai+1)处(这条捷径是单向的)。所以说其实每个可以浮躁的地方i都有一条捷径从这开始,到达api处。如果迈克选择了这样一组地方p1=1,p2,...,pk,其中1<=i<k满足api=pi+1,迈克就只需要花费1点精力而不是abs(p[i]-p[i+1])就可以从pi走到pi+1了。再比如迈克选择了这样一个序列去浮躁p1=1,p2=ap1,p3=ap2,...,pk=apk-1,那么只需要k-1点精力就可以从p1走到pk了。因为迈克忙着码代码,所以说他拜托你帮他求出来从家到每个可以浮躁的地方需要耗费的精力点数。
输入:
第1行:一个整数N(1<=N<=200 000)表示迈克所在的城市包含N个可以浮躁的地方(即N条捷径)
第2行:N个整数a1,...,aN(i<=ai<=N,用来表示第i个地方有到第ai个地方的捷径(捷径都是单向的)。
输出:
第1行:N个整数m1,m2,...,mN表示迈克从家里到第i个地方所需要花费的精力点数。

样例们:

输入:

3

2 2 3

输出:

0 1 2

==============

输入:

5

1 2 3 4 5

输出:

0 1 2 3 4

==========

输入:

7

4 4 4 4 7 7 7

输出:

0 1 2 1 2 3 3

Codeforces Round #361 Jul.6th B题 ☺译的更多相关文章

  1. Codeforces Round #361 Jul.6th A题 ☺译

    A.迈克和手机 当迈克在沙滩上游泳的时候,他意外的把他的手机扔进了水里.不过你甭担心因为他立马买了个便宜些的代替品,这个代替品是老款九键键盘,这个键盘只有十个等大的数字按键,按以下方式排列: 1 2 ...

  2. Codeforces Round #361 (Div. 2) 套题

    A - Mike and Cellphone 问有没有多解,每个点按照给出的序列用向量法跑一遍 #include<cstdio> #include<cstring> #incl ...

  3. Codeforces Round #378 (Div. 2) D题(data structure)解题报告

    题目地址 先简单的总结一下这次CF,前两道题非常的水,可是第一题又是因为自己想的不够周到而被Hack了一次(或许也应该感谢这个hack我的人,使我没有最后在赛后测试中WA).做到C题时看到题目情况非常 ...

  4. Codeforces Round #612 (Div. 2) 前四题题解

    这场比赛的出题人挺有意思,全部magic成了青色. 还有题目中的图片特别有趣. 晚上没打,开virtual contest打的,就会前三道,我太菜了. 最后看着题解补了第四道. 比赛传送门 A. An ...

  5. Codeforces Round #713 (Div. 3)AB题

    Codeforces Round #713 (Div. 3) Editorial 记录一下自己写的前二题本人比较菜 A. Spy Detected! You are given an array a ...

  6. Codeforces Round #361 div2

    ProblemA(Codeforces Round 689A): 题意: 给一个手势, 问这个手势是否是唯一. 思路: 暴力, 模拟将这个手势上下左右移动一次看是否还在键盘上即可. 代码: #incl ...

  7. ST表入门学习poj3264 hdu5443 hdu5289 codeforces round #361 div2D

    ST算法介绍:[转自http://blog.csdn.net/insistgogo/article/details/9929103] 作用:ST算法是用来求解给定区间RMQ的最值,本文以最小值为例 方 ...

  8. Codeforces Round #552 (Div. 3) A题

    题目网址:http://codeforces.com/contest/1154/problem/ 题目意思:就是给你四个数,这四个数是a+b,a+c,b+c,a+b+c,次序未知要反求出a,b,c,d ...

  9. Codeforces Round #412 Div. 2 补题 D. Dynamic Problem Scoring

    D. Dynamic Problem Scoring time limit per test 2 seconds memory limit per test 256 megabytes input s ...

随机推荐

  1. char* 和char[]的区别

    以下内容均来自互联网,系笔者汇总并总结. 1. 问题介绍 问题引入:在实习过程中发现了一个以前一直默认的错误,同样char *c = "abc"和char c[]="ab ...

  2. 抽象工厂模式(Abstract Factory Pattern)

    动机(Motivation) 在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作:同时,由于需求的变化,往往存在更多系列对象的创建工作.如何应对这种变化?如何绕过常规的对象创建方法(new), ...

  3. 清除mysql表中数据

    delete from 表名; truncate table 表名; 不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内 ...

  4. 云计算 云服务 hadoop

    云:是一种虚拟化的技术,重在资源管理. 云服务是云计算的一种商业模式,有三个层次: Iaas:场外服务器,存储和网络硬件:节省了维护成本和办公场地,公司可以在任何时候利用这些硬件来运行其应用 Paas ...

  5. 修改Android系统属性SystemProperties.set("sys.powerctl", "shutdown")关机分析

    简介: 从之前的博文中我们提到过,关机流程中最后是通过修改Android属性进行关机操作(SystemProperties.java通过JNI调用访问系统属性),当然我们也可以通过adb命令修改And ...

  6. 深入理解JavaScript系列:各种上下文中的this

    开头闲扯几句.上篇写对象原型的文章获得了1K多的阅读和几条评论,心里还是蛮欣喜的.那种写出来然后有人跟你讨论的感觉很不错. 公告里已经有写,自己开这个博客以及为什么要写文章的原因就是为了能把自己所思所 ...

  7. HDU 4059 容斥初步练习

    #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> ...

  8. Discuz对不起,您安装的不是正版应用的解决办法

    方法三(2014年新增最简单方法.) .打开/source /function/function_cloudaddons.php这个文件,2.搜索:cloudaddons_validator,3.一般 ...

  9. IOS一些高效的第三方框架库

    MBProgressHUD ——进展指示符库 苹果的应用程序一般都会用一种优雅的,半透明的进度显示效果,不过这个API是不公开的,因此你要是用了,很可能被清除出AppStore.而 MBProgres ...

  10. vs2013提高编译速度

    最近做新的项目,很多库是之前项目积累下来的库.在windows下使用的IDE是vs2013,整体编译的时候,明显感觉编译速度较慢,文件是一个一个编的. 从编译器本身的角度,vs2013是提供了加快编译 ...