#2720. 徐老师的卡牌翻转plus

徐老师的卡牌翻转plus

题目描述

大家都做过一道题——翻转卡牌

一开始有 nn 张卡牌放在桌上,有的朝上有的朝下

现在允许你将其中的一张翻转,并将它和它左右两侧的牌一起翻转,问最小的翻转次数

徐老师已经 ACAC 了这道题,但是聪明的他立刻就想到了一个加强版翻转卡牌

如果现在翻转卡牌不仅仅只影响相邻的卡牌呢?如果翻转不同卡牌时的消耗不同呢?

于是徐老师设定了两个数值 aia_ibib_i,表示翻转第 ii 张卡牌时,会同时翻转 iaii \sim a_i 编号的所有卡牌(保证 iaii \leq a_i),并且翻转这张卡牌会有 bib_i 点花费

现在徐老师想知道,最少需要多少点花费才可以让现在的 nn 张卡牌全部正面朝上?

输入格式

输入第一行包含一个整数 nn 表示卡牌数量

输入第二行包含一个长度为 nn0101 串,其中 00 表示这张牌正面朝上,11 表示这张牌反面朝上

接下来 nn 行,每行两个整数 ai,bia_i,b_i 表示翻转第 ii 张牌的信息

输出格式

输出一个整数表示最小花费

数据范围

数据编号 nn
121 \sim 2 n20n \leq 20
343 \sim 4 n300n \leq 300
565 \sim 6 n5000n \leq 5000
787 \sim 8 n105n \leq 10^5
9109 \sim 10 n106n \leq 10^6

特别的,对于所有测试数据满足:iain,1bi,109i \leq a_i \leq n, 1 \leq b_i, \leq 10^9

样例输入1

9
110101011
4 1
3 2
8 3
5 4
8 5
6 6
9 7
8 8
9 9

样例输出1

23