Submission #1026634


Source Code Expand

#include <iostream>
#include <cstdio>
#include <vector>
#include <string>
#include <algorithm>
#include <set>
#include <map>

#define rep(i,n) for(int i=0; i<(n); i++)
#define reps(i,x,n) for(int i=x; i<(n); i++)
#define rrep(i,n) for(int i=(n)-1; i>=0; i--)
#define all(X) (X).begin(),(X).end()
#define X first
#define Y second
#define pb push_back
#define eb emplace_back

using namespace std;
typedef long long int ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;

template<class T> bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
template<class T> bool chmin(T &a, const T &b) { if (a>b) { a=b; return 1; } return 0; }

template<class A, size_t N, class T> void Fill(A (&a)[N], const T &v){ fill( (T*)a, (T*)(a+N), v ); }

const ll INF = 0x3fffffff;


int main(){
	//ios_base::sync_with_stdio(0);
	ll N, L, ans=1e18;
	ll a[200005], b[200005], c[200005];

	cin >> N >> L;
	rep(i,N) cin >> a[i] >> b[i] >> c[i];
	rep(i,N+2){
		a[i+N] = a[i] + L;
		b[i+N] = b[i];
		c[i+N] = c[i];
	}

	// ↓計算量を落とす前のコード。
	// numは累積和で表される。累積和の起点をソートして順に変化させることですべてのsumを効率よく計算する
//	rep(k,N){
//		ll num=0, sum=0;
//		rep(i,N){
//			ll len = a[k+i+1] - a[k+i];
//			num += b[k+i] - c[k+i];
//			sum += abs(num * len);
//		}
//		chmin(ans, sum);
//	}

	multimap<ll,ll> mp;
	double num = 0;	// 経路(a[i+1] a[i])を移動する人数
	rep(i,N){
		double len = a[i+1] - a[i];
		num += (b[i] - c[i]);
		mp.emplace( num, len );
	}

	ll bnum = mp.begin()->first;	// 前回のnum
	ll sum=0, sum_lenR = 0, sum_lenL = 0;	// 合計(ansの候補)、現在のnumより大きいほうにあるlenの合計、現在のnumより小さいほうにあるlenの合計
	for(auto p: mp){
		sum += abs( (p.first - bnum) * p.second );
		sum_lenR += p.second;
	}
	chmin(ans, sum);
	for(auto p: mp){
		ll d = p.first - bnum;
		bnum = p.first;
		sum += d * (sum_lenL - sum_lenR);
		chmin(ans, sum);
		sum_lenR -= p.second;
		sum_lenL += p.second;
	}

	cout << ans << endl;

	return 0;
}

Submission Info

Submission Time
Task D - タクシー
User oyas
Language C++11 (GCC 4.8.1)
Score 100
Code Size 2175 Byte
Status AC
Exec Time 147 ms
Memory 11684 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 18 ms 800 KB
subtask0-sample-02.txt AC 16 ms 800 KB
subtask1-01.txt AC 16 ms 796 KB
subtask1-02.txt AC 18 ms 840 KB
subtask1-03.txt AC 21 ms 1312 KB
subtask1-04.txt AC 21 ms 1304 KB
subtask1-05.txt AC 23 ms 1440 KB
subtask1-06.txt AC 23 ms 1304 KB
subtask1-07.txt AC 22 ms 1312 KB
subtask1-08.txt AC 21 ms 1308 KB
subtask1-09.txt AC 21 ms 1308 KB
subtask1-10.txt AC 21 ms 1312 KB
subtask1-11.txt AC 23 ms 1312 KB
subtask1-12.txt AC 21 ms 1436 KB
subtask1-13.txt AC 22 ms 1436 KB
subtask1-14.txt AC 22 ms 1312 KB
subtask1-15.txt AC 21 ms 1312 KB
subtask1-16.txt AC 23 ms 1308 KB
subtask1-17.txt AC 23 ms 1312 KB
subtask1-18.txt AC 21 ms 1312 KB
subtask1-19.txt AC 22 ms 1312 KB
subtask1-20.txt AC 22 ms 1308 KB
subtask2-01.txt AC 24 ms 1440 KB
subtask2-02.txt AC 24 ms 1308 KB
subtask2-03.txt AC 23 ms 1308 KB
subtask2-04.txt AC 23 ms 1312 KB
subtask2-05.txt AC 22 ms 1312 KB
subtask2-06.txt AC 22 ms 1316 KB
subtask2-07.txt AC 25 ms 1436 KB
subtask2-08.txt AC 25 ms 1312 KB
subtask2-09.txt AC 22 ms 1312 KB
subtask2-10.txt AC 24 ms 1312 KB
subtask2-11.txt AC 23 ms 1436 KB
subtask2-12.txt AC 22 ms 1436 KB
subtask2-13.txt AC 22 ms 1440 KB
subtask2-14.txt AC 23 ms 1312 KB
subtask2-15.txt AC 24 ms 1312 KB
subtask2-16.txt AC 24 ms 1308 KB
subtask2-17.txt AC 25 ms 1436 KB
subtask2-18.txt AC 25 ms 1312 KB
subtask2-19.txt AC 24 ms 1312 KB
subtask2-20.txt AC 24 ms 1308 KB
subtask3-01.txt AC 43 ms 2928 KB
subtask3-02.txt AC 82 ms 6176 KB
subtask3-03.txt AC 144 ms 11680 KB
subtask3-04.txt AC 123 ms 11636 KB
subtask3-05.txt AC 144 ms 11680 KB
subtask3-06.txt AC 147 ms 11680 KB
subtask3-07.txt AC 144 ms 11680 KB
subtask3-08.txt AC 145 ms 11680 KB
subtask3-09.txt AC 119 ms 11684 KB
subtask3-10.txt AC 145 ms 11680 KB
subtask3-11.txt AC 119 ms 11684 KB
subtask3-12.txt AC 142 ms 11628 KB
subtask3-13.txt AC 142 ms 11680 KB
subtask3-14.txt AC 146 ms 11680 KB
subtask3-15.txt AC 145 ms 11680 KB
subtask3-16.txt AC 144 ms 11680 KB
subtask3-17.txt AC 144 ms 11680 KB
subtask3-18.txt AC 135 ms 11684 KB
subtask3-19.txt AC 141 ms 11684 KB
subtask3-20.txt AC 143 ms 11680 KB