Submission #2099930


Source Code Expand

#include "bits/stdc++.h"
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
const int INF = 1e9;
const ll LINF = 1e18;

/*
<url:https://arc063.contest.atcoder.jp/tasks/arc063_b>
問題文============================================================
 N 個の町が一直線上に並んでいます。
 行商人の高橋君は町 1 から出発し、リンゴの売買をしながら町 N へと向かいます。
 
 はじめ高橋君は町 1 におり、リンゴを 1 つも持っていません。
 高橋君は次のいずれかの行動を繰り返し行います。
 
 移動: 町 i (i<N) にいるとき、町 i+1 へ移動する。
 リンゴの売買: リンゴを好きな個数だけ売買する。
 ここで、町 i (1≦i≦N) ではリンゴの買値も売値もともに Ai 円とする。ここで Ai は相異なる整数です。
 1 つの町で売買するリンゴの個数に制限はありませんが、
 旅の中で売買するリンゴの個数は合計で (買う個数と売る個数を合わせて) T 個以下にしなくてはなりません。
 
 高橋君は旅の利益、すなわちリンゴを売った代金から買った代金を引いた値を最大にするように旅をするとします。
 旅が終わったときに持っていたリンゴの価値は考えず、旅の中で売買した金額だけを考えます。
 
 この旅に先立って、
 青木君は任意の町 i に対して Ai を好きな非負整数 Ai' に変えるという操作を好きなだけ行うことができます。
 ただし、この操作は行うごとに |Ai−Ai'| のコストがかかります。
 操作後には異なる町の間でリンゴの値段が同じになっていても構いません。
 
 青木君の目的はできるだけ少ない合計コストの操作で高橋君の利益を少なくとも 1 円下げることです。
 合計コストの最小値を求めてください。
 
 ただし、元の状態で高橋君が 1 円以上の利益を上げられることは仮定して構いません。
 

=================================================================

解説=============================================================

================================================================
*/
int main(void) {
	cin.tie(0); ios::sync_with_stdio(false);
    ll N,T; cin >> N >> T;
    vector<ll> A(N);
    for(auto &in:A) cin >> in;
    ll minv = A[0], maxdiff = -LINF;
    for(int i = 0; i < N;i++){
        minv = min(A[i],minv);
        maxdiff = max(maxdiff,A[i] - minv);
    }
    
    ll maxdiff_cnt = 0;
    minv = A[0];
    for(int i = 0; i < N;i++){
        minv = min(A[i],minv);
        if(A[i] - minv == maxdiff) maxdiff_cnt++;
    }
    cout << min(maxdiff_cnt,T/2) << endl;
	return 0;
}

Submission Info

Submission Time
Task D - An Invisible Hand
User clavis1107
Language C++14 (GCC 5.4.1)
Score 0
Code Size 2882 Byte
Status WA
Exec Time 11 ms
Memory 1024 KB

Judge Result

Set Name sample All
Score / Max Score 0 / 0 0 / 400
Status
AC × 3
AC × 14
WA × 1
Set Name Test Cases
sample sample_01.txt, sample_02.txt, sample_03.txt
All large_01.txt, large_02.txt, random_01.txt, random_02.txt, sample_01.txt, sample_02.txt, sample_03.txt, small_01.txt, small_02.txt, spec_01.txt, spec_02.txt, spec_03.txt, spec_04.txt, spec_05.txt, spec_06.txt
Case Name Status Exec Time Memory
large_01.txt WA 11 ms 1024 KB
large_02.txt AC 9 ms 1024 KB
random_01.txt AC 11 ms 1024 KB
random_02.txt AC 11 ms 1024 KB
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
sample_03.txt AC 1 ms 256 KB
small_01.txt AC 1 ms 256 KB
small_02.txt AC 1 ms 256 KB
spec_01.txt AC 11 ms 1024 KB
spec_02.txt AC 11 ms 1024 KB
spec_03.txt AC 11 ms 1024 KB
spec_04.txt AC 11 ms 1024 KB
spec_05.txt AC 11 ms 1024 KB
spec_06.txt AC 11 ms 1024 KB