Submission #2195784


Source Code Expand

#include <iostream>
#include <cmath>
#include <tuple>
#include <algorithm>
#include <vector>
using namespace std;

long long N,L,a[100009],b[100009],c[100009],S;

long long solve_naive(vector<long long>&A,vector<long long>&B,vector<long long>&C){
	long long cx=0,cost=0;
	for(int i=0;i<B.size();i++){
		for(int j=cx;j<C.size();j++){
			if(C[cx]>=B[i]){
				C[cx]-=B[i];cost+=llabs(A[i]-A[cx])*B[i];
				B[i]=0;break;
			}
			else{
				B[i]-=C[cx];cost+=llabs(A[i]-A[cx])*C[cx];
				C[cx]=0;cx++;
			}
		}
	}
	//cout<<cost<<endl;
	return cost;
}

long long solve(long long pos){
	long long I=(pos+S*2)/S;I-=2;
	pos-=I*S;I*=L;
	long long G=0;
	vector<tuple<long long,long long,long long>>T;
	for(int i=0;i<N;i++){
		if(G+c[i]>=pos) {
			T.push_back(make_tuple(I+a[i],0LL,G+c[i]-pos));
			long long J=I;
			for(int j=i+1;j<N+i;j++){
				if(j==N) J+=L;
				T.push_back(make_tuple(J+a[j%N],0LL,c[j%N]));
			}
			T.push_back(make_tuple(I+L+a[i],0LL,pos-G));
			for(int j=0;j<N;j++){
				T.push_back(make_tuple(a[j],b[j],0LL));
			}
			break;
		}
		G+=c[i];
	}
	vector<int>X;
	for(int i=0;i<T.size();i++) X.push_back(get<0>(T[i]));
	sort(X.begin(),X.end());
	X.erase(unique(X.begin(),X.end()),X.end());
	
	vector<long long>A(X.size(),0),B(X.size(),0),C(X.size(),0);
	for(int i=0;i<X.size();i++) A[i]=X[i];
	for(int i=0;i<T.size();i++){
		long long pos1=lower_bound(X.begin(),X.end(),(int)get<0>(T[i]))-X.begin();
		B[pos1]+=get<1>(T[i]);
		C[pos1]+=get<2>(T[i]);
	}
	//cout<<endl;
	//cout<<"pos = "<<pos<<endl;
	//cout<<I<<" "<<S<<endl;
	/*for(int i=0;i<A.size();i++){
		cout<<A[i]<<" "<<B[i]<<" "<<C[i]<<endl;
	}*/
	return solve_naive(A,B,C);
}

int main(){
	cin>>N>>L;
	for(int i=0;i<N;i++){
		scanf("%lld%lld%lld", &a[i], &b[i], &c[i]);S+=b[i];
	}
	long long L=-S,R=S+1,M,ans=(1LL<<60);
	for(int i=0;i<38;i++){
		M=(L+R)/2;
		long long I1=solve(M);
		long long I2=solve(M+1);
		ans=min(ans,min(I1,I2));
		if(I1>I2) L=M;
		else R=M;
	}
	cout<<ans<<endl;
	return 0;
}

Submission Info

Submission Time
Task D - タクシー
User E869120
Language C++14 (Clang 3.8.0)
Score 100
Code Size 2048 Byte
Status AC
Exec Time 1818 ms
Memory 14872 KB

Judge Result

Set Name Sample Subtask1 Subtask2 Subtask3
Score / Max Score 0 / 0 15 / 15 30 / 30 55 / 55
Status
AC × 2
AC × 22
AC × 42
AC × 62
Set Name Test Cases
Sample subtask0-sample-01.txt, subtask0-sample-02.txt
Subtask1 subtask0-sample-01.txt, subtask0-sample-02.txt, subtask1-01.txt, subtask1-02.txt, subtask1-03.txt, subtask1-04.txt, subtask1-05.txt, subtask1-06.txt, subtask1-07.txt, subtask1-08.txt, subtask1-09.txt, subtask1-10.txt, subtask1-11.txt, subtask1-12.txt, subtask1-13.txt, subtask1-14.txt, subtask1-15.txt, subtask1-16.txt, subtask1-17.txt, subtask1-18.txt, subtask1-19.txt, subtask1-20.txt
Subtask2 subtask0-sample-01.txt, subtask0-sample-02.txt, subtask1-01.txt, subtask1-02.txt, subtask1-03.txt, subtask1-04.txt, subtask1-05.txt, subtask1-06.txt, subtask1-07.txt, subtask1-08.txt, subtask1-09.txt, subtask1-10.txt, subtask1-11.txt, subtask1-12.txt, subtask1-13.txt, subtask1-14.txt, subtask1-15.txt, subtask1-16.txt, subtask1-17.txt, subtask1-18.txt, subtask1-19.txt, subtask1-20.txt, subtask2-01.txt, subtask2-02.txt, subtask2-03.txt, subtask2-04.txt, subtask2-05.txt, subtask2-06.txt, subtask2-07.txt, subtask2-08.txt, subtask2-09.txt, subtask2-10.txt, subtask2-11.txt, subtask2-12.txt, subtask2-13.txt, subtask2-14.txt, subtask2-15.txt, subtask2-16.txt, subtask2-17.txt, subtask2-18.txt, subtask2-19.txt, subtask2-20.txt
Subtask3 subtask0-sample-01.txt, subtask0-sample-02.txt, subtask1-01.txt, subtask1-02.txt, subtask1-03.txt, subtask1-04.txt, subtask1-05.txt, subtask1-06.txt, subtask1-07.txt, subtask1-08.txt, subtask1-09.txt, subtask1-10.txt, subtask1-11.txt, subtask1-12.txt, subtask1-13.txt, subtask1-14.txt, subtask1-15.txt, subtask1-16.txt, subtask1-17.txt, subtask1-18.txt, subtask1-19.txt, subtask1-20.txt, subtask2-01.txt, subtask2-02.txt, subtask2-03.txt, subtask2-04.txt, subtask2-05.txt, subtask2-06.txt, subtask2-07.txt, subtask2-08.txt, subtask2-09.txt, subtask2-10.txt, subtask2-11.txt, subtask2-12.txt, subtask2-13.txt, subtask2-14.txt, subtask2-15.txt, subtask2-16.txt, subtask2-17.txt, subtask2-18.txt, subtask2-19.txt, subtask2-20.txt, subtask3-01.txt, subtask3-02.txt, subtask3-03.txt, subtask3-04.txt, subtask3-05.txt, subtask3-06.txt, subtask3-07.txt, subtask3-08.txt, subtask3-09.txt, subtask3-10.txt, subtask3-11.txt, subtask3-12.txt, subtask3-13.txt, subtask3-14.txt, subtask3-15.txt, subtask3-16.txt, subtask3-17.txt, subtask3-18.txt, subtask3-19.txt, subtask3-20.txt
Case Name Status Exec Time Memory
subtask0-sample-01.txt AC 1 ms 256 KB
subtask0-sample-02.txt AC 1 ms 256 KB
subtask1-01.txt AC 3 ms 384 KB
subtask1-02.txt AC 2 ms 256 KB
subtask1-03.txt AC 84 ms 1064 KB
subtask1-04.txt AC 89 ms 1132 KB
subtask1-05.txt AC 84 ms 1064 KB
subtask1-06.txt AC 75 ms 1064 KB
subtask1-07.txt AC 84 ms 1064 KB
subtask1-08.txt AC 84 ms 1064 KB
subtask1-09.txt AC 84 ms 1060 KB
subtask1-10.txt AC 84 ms 1060 KB
subtask1-11.txt AC 84 ms 1064 KB
subtask1-12.txt AC 85 ms 1064 KB
subtask1-13.txt AC 80 ms 1060 KB
subtask1-14.txt AC 85 ms 1064 KB
subtask1-15.txt AC 85 ms 1060 KB
subtask1-16.txt AC 85 ms 1064 KB
subtask1-17.txt AC 85 ms 1060 KB
subtask1-18.txt AC 80 ms 1064 KB
subtask1-19.txt AC 84 ms 1064 KB
subtask1-20.txt AC 84 ms 1064 KB
subtask2-01.txt AC 85 ms 1060 KB
subtask2-02.txt AC 85 ms 1064 KB
subtask2-03.txt AC 82 ms 1064 KB
subtask2-04.txt AC 84 ms 1060 KB
subtask2-05.txt AC 83 ms 1064 KB
subtask2-06.txt AC 82 ms 1064 KB
subtask2-07.txt AC 84 ms 1064 KB
subtask2-08.txt AC 83 ms 1064 KB
subtask2-09.txt AC 84 ms 1060 KB
subtask2-10.txt AC 84 ms 1064 KB
subtask2-11.txt AC 84 ms 1064 KB
subtask2-12.txt AC 84 ms 1060 KB
subtask2-13.txt AC 84 ms 1060 KB
subtask2-14.txt AC 83 ms 1064 KB
subtask2-15.txt AC 84 ms 1064 KB
subtask2-16.txt AC 84 ms 1060 KB
subtask2-17.txt AC 84 ms 1060 KB
subtask2-18.txt AC 84 ms 1068 KB
subtask2-19.txt AC 84 ms 1064 KB
subtask2-20.txt AC 84 ms 1064 KB
subtask3-01.txt AC 345 ms 3268 KB
subtask3-02.txt AC 839 ms 7040 KB
subtask3-03.txt AC 1759 ms 14492 KB
subtask3-04.txt AC 1740 ms 13492 KB
subtask3-05.txt AC 1782 ms 13488 KB
subtask3-06.txt AC 1797 ms 14872 KB
subtask3-07.txt AC 1782 ms 13492 KB
subtask3-08.txt AC 1794 ms 14284 KB
subtask3-09.txt AC 1795 ms 14132 KB
subtask3-10.txt AC 1785 ms 14040 KB
subtask3-11.txt AC 1749 ms 14152 KB
subtask3-12.txt AC 1776 ms 13496 KB
subtask3-13.txt AC 1786 ms 14516 KB
subtask3-14.txt AC 1779 ms 13620 KB
subtask3-15.txt AC 1785 ms 14040 KB
subtask3-16.txt AC 1796 ms 13944 KB
subtask3-17.txt AC 1796 ms 13668 KB
subtask3-18.txt AC 1818 ms 14052 KB
subtask3-19.txt AC 1817 ms 14376 KB
subtask3-20.txt AC 1779 ms 13484 KB