<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      [AGC011F] Train Service Planning

      #include <bits/stdc++.h>
      const int N=200005;
      typedef long long ll;
      struct note{
      	int l,r;
      }a[N];
      int n,k,x,y,b[N],cnt,t[N<<2];
      ll S,lst,dp[N];
      void pushdown(int k){
      	if (t[k]){
      		t[k<<1]=t[k];
      		t[k<<1|1]=t[k];
      		t[k]=0;
      	}
      }
      int query(int k,int L,int R,int x){
      	if (t[k]) return t[k];
      	if (L==R) return 0;
      	int mid=(L+R)>>1;
      	if (x<=mid) return query(k<<1,L,mid,x);
      	return query(k<<1|1,mid+1,R,x);
      }
      void modify(int k,int L,int R,int l,int r,int x){
      	if (l>r) return;
      	if (L==l && R==r){
      		t[k]=x;
      		return;
      	}
      	pushdown(k);
      	int mid=(L+R)>>1;
      	if (r<=mid) modify(k<<1,L,mid,l,r,x);
      	else if (l>mid) modify(k<<1|1,mid+1,R,l,r,x);
      	else{
      		modify(k<<1,L,mid,l,mid,x);
      		modify(k<<1|1,mid+1,R,mid+1,r,x);
      	}
      }
      ll Ask(int x){
      	int t=query(1,1,cnt,x);
      	return t?dp[t]+(b[a[t].r]-b[x]+k)%k:0;
      }
      int main(){
      	scanf("%d%d",&n,&k);
      	for (int i=1;i<=n;i++){
      		scanf("%d%d",&x,&y);
      		lst=S;
      		S+=x;
      		if (y==1 && 2*x>k){
      			puts("-1");
      			return 0;
      		}
      		int L=((-2*S)%k+k)%k,R=((-2*lst)%k+k)%k;
      		if (y==2) L=k-1,R=0;
      		a[i]={L,R};
      		b[++cnt]=L,b[++cnt]=R;	
      	}
      	std::sort(b+1,b+cnt+1);
      	cnt=std::unique(b+1,b+cnt+1)-b-1;
      	for (int i=1;i<=n;i++){
      		a[i].l=std::lower_bound(b+1,b+cnt+1,a[i].l)-b;
      		a[i].r=std::lower_bound(b+1,b+cnt+1,a[i].r)-b;
      	}
      	for (int i=n;i>=1;i--){
      		dp[i]=Ask(a[i].r);
      		if (a[i].l<a[i].r) modify(1,1,cnt,a[i].l+1,a[i].r-1,i);
      		else modify(1,1,cnt,a[i].l+1,cnt,i),modify(1,1,cnt,1,a[i].r-1,i); 
      	}
      	ll ans=1000000000000000;
      	for (int i=1;i<=cnt;i++)
      		ans=std::min(ans,Ask(i));
      	printf("%lld\n",2*S+ans);
      } 
      
      posted @ 2021-02-06 11:17  flyfeather  閱讀(84)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲综合另类小说色区一| 人人妻人人做人人爽夜欢视频 | 国产在线98福利播放视频| 国产91小视频在线观看| 国产亚洲精品久久久久5区| 综合久青草视频在线观看| 武隆县| 日韩一区二区三区水蜜桃| 亚洲国产午夜精品理论片妓女 | 亚洲综合色婷婷中文字幕| 国产在线乱子伦一区二区| 99国产精品久久久久久久日本竹| 亚洲综合视频一区二区三区 | 久久精品国产99久久久古代| 久久亚洲精品人成综合网| 国产成AV人片在线观看天堂无码| 午夜色大片在线观看免费| 五月婷婷开心中文字幕| 久久天天躁夜夜躁狠狠85| 亚洲精中文字幕二区三区| 亚洲国产精品成人精品无码区在线| 色欲AV无码一区二区人妻| 老司机午夜免费精品视频| 亚洲国产精品男人的天堂| 日本一道一区二区视频| 国产精品久久久尹人香蕉| 18禁动漫一区二区三区| 国产一区二区三区黄色片| 亚洲中少妇久久中文字幕| 国偷自产一区二区三区在线视频| 成人av午夜在线观看| 亚洲综合一区二区三区| 国产亚洲av人片在线播放| 开心色怡人综合网站| 乱女伦露脸对白在线播放| 久热久热免费在线观视频| 久久精品蜜芽亚洲国产av| 亚洲熟女乱色综合一区| 日本亚洲欧洲免费无线码| 亚洲国产成人av毛片大全| 日韩在线视频一区二区三区|