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 |
|
|
|
|
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 |