Description

小西有一条很长的彩带,彩带上挂着各式各样的彩珠。已知彩 珠有N个,分为K种。简单的说,可以将彩带考虑为x轴,每一个彩珠有一个对应的坐标(即位置)。某些坐标上可以没有彩珠,但多个彩珠也可以出现在同一个位 置上。 小布生日快到了,于是小西打算剪一段彩带送给小布。为了让礼物彩带足够漂亮,小西希望这一段彩带中能包含所有种类的彩珠。同时,为了方便,小西希望这段彩 带尽可能短,你能帮助小西计算这个最短的长度么?彩带的长度即为彩带开始位置到结束位置的位置差。

Input

第一行包含两个整数N, K,分别表示彩珠的总数以及种类数。接下来K行,每行第一个数为Ti,表示第i种彩珠的数目。接下来按升序给出Ti个非负整数,为这Ti个彩珠分别出现的位置。

Output

应包含一行,为最短彩带长度。

Sample Input

6 3
1 5
2 1 7
3 1 3 8

Sample Output

3

HINT

有多种方案可选,其中比较短的是1~5和5~8。后者长度为3最短。
【数据规模】
对于50%的数据, N≤10000;
对于80%的数据, N≤800000;
对于100%的数据,1≤N≤1000000,1≤K≤60,0≤彩珠位置<2^31。

  

 #include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
using namespace std;
const int INF=;
const int maxn=;
const int maxk=;
struct Array{
int num[maxn],p[maxk];
int *operator [](int x){
return &num[p[x-]];
}
}a;
int sum[maxk];
int l=INF,r;
int n,k;
struct Data{
int p,id,t;
Data(int x=,int y=,int z=){
p=x;id=y;t=z;
}
friend bool operator <(Data x,Data y){
return x.p>y.p;
}
};
priority_queue<Data>q;
int main(){
freopen("gift.in","r",stdin);
freopen("gift.out","w",stdout);
scanf("%d%d",&n,&k);
for(int i=;i<=k;i++){
scanf("%d",&sum[i]);
a.p[i]=a.p[i-]+sum[i];
for(int j=;j<=sum[i];j++)
scanf("%d",&a[i][j]);
q.push(Data(a[i][],i,));
l=min(l,a[i][]);
r=max(r,a[i][]);
}
int ans=r-l;
while(true){
Data x=q.top();q.pop();
if(x.t==sum[x.id])break;
q.push(Data(a[x.id][x.t+],x.id,x.t+));
l=q.top().p;r=max(r,a[x.id][x.t+]);
ans=min(ans,r-l);
}
printf("%d\n",ans);
return ;
}

最新文章

  1. electrica writeup
  2. caffe 试运行MNIST
  3. android Studio 快捷键(转载)
  4. PL/SQL 下邮件发送程序
  5. linux命令 screen的简单使用
  6. Cocos2d-JS中的cc.LabelTTF
  7. poj 1459 Power Network【建立超级源点,超级汇点】
  8. 使用css3属性,大部分浏览器要识别前缀
  9. java改变图片文件尺寸
  10. Android学习笔记:利用httpclient和AsyncTask 发起网络http post操作
  11. ubuntu 10.04安装qtcreator并汉化
  12. bower基本使用
  13. .Net IOC框架入门之二 CastleWindsor
  14. VS中代码覆盖问题
  15. ES2015 类 class 语法
  16. python基础——内置函数
  17. hdu 5314 动态树
  18. alome配环境
  19. 机器学习排序算法:RankNet to LambdaRank to LambdaMART
  20. git 入门教程之实战 git

热门文章

  1. Linux squid 安装配置
  2. ZOJ 3898 - Stean 积分
  3. (tomcat访问不了的两种解决方法)Bad Request(Invalid Hostname)
  4. Tomcat- java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet
  5. 在oracle中怎么把一张表的数据插入到另一张表中
  6. servlet 项目 ,,启动没问题,,但是,一请求也面就报错误。。。。求解决。。。。。。。。。。。。。各种百度,都没解决了啊。。。。。急急急急急急急急急急急急急急急急急急
  7. Win10获取管理员/administrator权限的方法
  8. 层模型--绝对定位(position:absolute)
  9. 【POJ2761】【区间第k大】Feed the dogs(吐槽)
  10. underscorejs-partition学习