Submission #1381278
Source Code Expand
#include <bits/stdc++.h> using namespace std; typedef signed long long ll; #undef _P #define _P(...) (void)printf(__VA_ARGS__) #define FOR(x,to) for(x=0;x<(to);x++) #define FORR(x,arr) for(auto& x:arr) #define ITR(x,c) for(__typeof(c.begin()) x=c.begin();x!=c.end();x++) #define ALL(a) (a.begin()),(a.end()) #define ZERO(a) memset(a,0,sizeof(a)) #define MINUS(a) memset(a,0xff,sizeof(a)) //------------------------------------------------------- class RangeArray { public: map<ll,ll> V; void clear(){ V.clear();V[-1]=V[(1<<30)+1]=-1; } RangeArray() { clear(); } ll operator[](ll v) { return (--V.lower_bound(v+1))->second; } void set_range(ll L,ll R,ll v) { // A[L..(R-1)]=v if(L>=R) return; auto it=V.lower_bound(R+1); ll t=(--it)->second; V[R]=t; it=V.lower_bound(R); it--; while(it->first>=L) it=V.erase(it), it--; V[L]=v; } }; int N; ll K; ll A[101010],B[101010]; ll X[101010][2]; ll S[101010]; RangeArray ra; void solve() { int i,j,k,l,r,x,y; string s; cin>>N>>K; K*=2; FOR(i,N) { cin>>A[i]>>B[i]; A[i]*=2; if(B[i]==1 && A[i]>K/2) return _P("-1\n"); S[i+1]=S[i]+A[i]; } FOR(i,2) { ra.clear(); for(x=1;x<=N;x++) { int v=ra[S[x]%(K/2)]; if(v==-1) { X[x][i]=2*S[x]; } else { ll d=S[x]-S[v]; X[x][i]=X[v][i]+(d+K/2-1)/(K/2)*(K/2)*2; } if(B[x-1]==1) { ll L=S[x-1]+1,R=S[x]+1; if(L+(K/2)<=R) ra.set_range(0,(K/2),x); else { L%=K/2; R%=K/2; if(L<R) { ra.set_range(L,R,x); } else { ra.set_range(L,K/2,x); ra.set_range(0,R,x); } } } } FOR(x,N+1) S[x]=S[N]-S[x]; reverse(B,B+N); reverse(S,S+N+1); } ll ret=1LL<<60; FOR(i,N+1) ret=min(ret,X[i][0]+X[N-i][1]); cout<<ret/2<<endl; } int main(int argc,char** argv){ string s;int i; if(argc==1) ios::sync_with_stdio(false), cin.tie(0); FOR(i,argc-1) s+=argv[i+1],s+='\n'; FOR(i,s.size()) ungetc(s[s.size()-1-i],stdin); solve(); return 0; }
Submission Info
Submission Time | |
---|---|
Task | F - Train Service Planning |
User | kmjp |
Language | C++14 (GCC 5.4.1) |
Score | 1700 |
Code Size | 2045 Byte |
Status | AC |
Exec Time | 193 ms |
Memory | 10368 KB |
Judge Result
Set Name | Sample | All | subtask | subtask2 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 700 / 700 | 500 / 500 | 500 / 500 | ||||||||
Status |
|
|
|
|
Set Name | Test Cases |
---|---|
Sample | sample1.txt, sample2.txt, sample3.txt, sample4.txt |
All | sample1.txt, sample2.txt, sample3.txt, sample4.txt, in1.txt, in10.txt, in101.txt, in102.txt, in103.txt, in104.txt, in105.txt, in106.txt, in107.txt, in108.txt, in109.txt, in11.txt, in110.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in2.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, in3.txt, in4.txt, in5.txt, in6.txt, in7.txt, in8.txt, in9.txt, sample1.txt, sample2.txt, sample3.txt, sample4.txt, sub2in1.txt, sub2in10.txt, sub2in11.txt, sub2in12.txt, sub2in13.txt, sub2in14.txt, sub2in15.txt, sub2in16.txt, sub2in17.txt, sub2in18.txt, sub2in19.txt, sub2in2.txt, sub2in20.txt, sub2in21.txt, sub2in22.txt, sub2in23.txt, sub2in24.txt, sub2in3.txt, sub2in4.txt, sub2in5.txt, sub2in6.txt, sub2in7.txt, sub2in8.txt, sub2in9.txt, subin1.txt, subin10.txt, subin101.txt, subin102.txt, subin103.txt, subin104.txt, subin105.txt, subin106.txt, subin107.txt, subin108.txt, subin109.txt, subin11.txt, subin12.txt, subin13.txt, subin14.txt, subin15.txt, subin16.txt, subin17.txt, subin18.txt, subin19.txt, subin2.txt, subin20.txt, subin201.txt, subin21.txt, subin22.txt, subin23.txt, subin24.txt, subin3.txt, subin4.txt, subin5.txt, subin6.txt, subin7.txt, subin8.txt, subin9.txt |
subtask | sample1.txt, sample2.txt, sample3.txt, subin1.txt, subin10.txt, subin101.txt, subin102.txt, subin103.txt, subin104.txt, subin105.txt, subin106.txt, subin107.txt, subin108.txt, subin109.txt, subin11.txt, subin12.txt, subin13.txt, subin14.txt, subin15.txt, subin16.txt, subin17.txt, subin18.txt, subin19.txt, subin2.txt, subin20.txt, subin201.txt, subin21.txt, subin22.txt, subin23.txt, subin24.txt, subin3.txt, subin4.txt, subin5.txt, subin6.txt, subin7.txt, subin8.txt, subin9.txt |
subtask2 | sample1.txt, sample2.txt, sample3.txt, sample4.txt, sub2in1.txt, sub2in10.txt, sub2in11.txt, sub2in12.txt, sub2in13.txt, sub2in14.txt, sub2in15.txt, sub2in16.txt, sub2in17.txt, sub2in18.txt, sub2in19.txt, sub2in2.txt, sub2in20.txt, sub2in21.txt, sub2in22.txt, sub2in23.txt, sub2in24.txt, sub2in3.txt, sub2in4.txt, sub2in5.txt, sub2in6.txt, sub2in7.txt, sub2in8.txt, sub2in9.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
in1.txt | AC | 3 ms | 384 KB |
in10.txt | AC | 56 ms | 4224 KB |
in101.txt | AC | 69 ms | 4864 KB |
in102.txt | AC | 80 ms | 5248 KB |
in103.txt | AC | 62 ms | 4480 KB |
in104.txt | AC | 99 ms | 6784 KB |
in105.txt | AC | 108 ms | 7040 KB |
in106.txt | AC | 68 ms | 4864 KB |
in107.txt | AC | 79 ms | 5120 KB |
in108.txt | AC | 61 ms | 4480 KB |
in109.txt | AC | 104 ms | 6784 KB |
in11.txt | AC | 57 ms | 4224 KB |
in110.txt | AC | 109 ms | 7040 KB |
in12.txt | AC | 62 ms | 4224 KB |
in13.txt | AC | 60 ms | 4224 KB |
in14.txt | AC | 62 ms | 4224 KB |
in15.txt | AC | 75 ms | 4224 KB |
in16.txt | AC | 72 ms | 4224 KB |
in17.txt | AC | 67 ms | 4224 KB |
in18.txt | AC | 63 ms | 4224 KB |
in19.txt | AC | 66 ms | 4224 KB |
in2.txt | AC | 57 ms | 4224 KB |
in20.txt | AC | 63 ms | 4224 KB |
in21.txt | AC | 108 ms | 7936 KB |
in22.txt | AC | 106 ms | 8704 KB |
in23.txt | AC | 109 ms | 7168 KB |
in24.txt | AC | 109 ms | 6656 KB |
in25.txt | AC | 51 ms | 4224 KB |
in26.txt | AC | 51 ms | 4224 KB |
in27.txt | AC | 50 ms | 4224 KB |
in28.txt | AC | 53 ms | 4224 KB |
in3.txt | AC | 56 ms | 4224 KB |
in4.txt | AC | 57 ms | 4224 KB |
in5.txt | AC | 49 ms | 3584 KB |
in6.txt | AC | 71 ms | 4224 KB |
in7.txt | AC | 55 ms | 4224 KB |
in8.txt | AC | 10 ms | 1664 KB |
in9.txt | AC | 56 ms | 4224 KB |
sample1.txt | AC | 1 ms | 256 KB |
sample2.txt | AC | 1 ms | 256 KB |
sample3.txt | AC | 1 ms | 256 KB |
sample4.txt | AC | 1 ms | 256 KB |
sub2in1.txt | AC | 1 ms | 256 KB |
sub2in10.txt | AC | 1 ms | 256 KB |
sub2in11.txt | AC | 1 ms | 256 KB |
sub2in12.txt | AC | 1 ms | 256 KB |
sub2in13.txt | AC | 1 ms | 256 KB |
sub2in14.txt | AC | 1 ms | 256 KB |
sub2in15.txt | AC | 1 ms | 256 KB |
sub2in16.txt | AC | 1 ms | 256 KB |
sub2in17.txt | AC | 1 ms | 256 KB |
sub2in18.txt | AC | 1 ms | 256 KB |
sub2in19.txt | AC | 1 ms | 256 KB |
sub2in2.txt | AC | 1 ms | 256 KB |
sub2in20.txt | AC | 1 ms | 256 KB |
sub2in21.txt | AC | 1 ms | 256 KB |
sub2in22.txt | AC | 1 ms | 256 KB |
sub2in23.txt | AC | 1 ms | 256 KB |
sub2in24.txt | AC | 1 ms | 256 KB |
sub2in3.txt | AC | 1 ms | 256 KB |
sub2in4.txt | AC | 1 ms | 256 KB |
sub2in5.txt | AC | 1 ms | 256 KB |
sub2in6.txt | AC | 1 ms | 256 KB |
sub2in7.txt | AC | 1 ms | 256 KB |
sub2in8.txt | AC | 1 ms | 256 KB |
sub2in9.txt | AC | 1 ms | 256 KB |
subin1.txt | AC | 77 ms | 4224 KB |
subin10.txt | AC | 74 ms | 4224 KB |
subin101.txt | AC | 75 ms | 4224 KB |
subin102.txt | AC | 132 ms | 6272 KB |
subin103.txt | AC | 161 ms | 8192 KB |
subin104.txt | AC | 152 ms | 8192 KB |
subin105.txt | AC | 182 ms | 10368 KB |
subin106.txt | AC | 193 ms | 10368 KB |
subin107.txt | AC | 125 ms | 7296 KB |
subin108.txt | AC | 123 ms | 7296 KB |
subin109.txt | AC | 133 ms | 6528 KB |
subin11.txt | AC | 89 ms | 4224 KB |
subin12.txt | AC | 85 ms | 4224 KB |
subin13.txt | AC | 78 ms | 4224 KB |
subin14.txt | AC | 74 ms | 4224 KB |
subin15.txt | AC | 77 ms | 4224 KB |
subin16.txt | AC | 74 ms | 4224 KB |
subin17.txt | AC | 87 ms | 4224 KB |
subin18.txt | AC | 83 ms | 4224 KB |
subin19.txt | AC | 76 ms | 4224 KB |
subin2.txt | AC | 77 ms | 4224 KB |
subin20.txt | AC | 75 ms | 4224 KB |
subin201.txt | AC | 1 ms | 256 KB |
subin21.txt | AC | 67 ms | 4224 KB |
subin22.txt | AC | 66 ms | 4224 KB |
subin23.txt | AC | 67 ms | 4224 KB |
subin24.txt | AC | 70 ms | 4224 KB |
subin3.txt | AC | 127 ms | 4224 KB |
subin4.txt | AC | 66 ms | 3584 KB |
subin5.txt | AC | 83 ms | 4224 KB |
subin6.txt | AC | 94 ms | 4864 KB |
subin7.txt | AC | 16 ms | 2560 KB |
subin8.txt | AC | 11 ms | 1920 KB |
subin9.txt | AC | 79 ms | 4224 KB |