naoya_t@hatenablog

いわゆるチラシノウラであります

TCO18 Algorithm Round 2A

6/3 1:00am JST
起きていられたので出た。

oxx 231.65pt 271st (Room27:12位)
1497→1517 (+20)
f:id:n4_t:20180604005202p:plain:w400
レート反映めちゃ遅かった(11:30am過ぎに確認できた)けど上がったし黄色に復帰したので良しとする

200位までに入れば通過(&Tシャツ?)だったらしい。
(50人ぐらいだと思ってた)

Easy (250)

y[0]に-200〜200, dに-100〜100を入れて一番いいやつを
そこまでサクッと書けたんだけど赤の人が1人出してるだけだったから罠があるかもと思って悩んだ。(そういうのも含めて実力だ)
→AC

#line 2 "ArithmeticSequenceDiv1.cpp"
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
#define rep(var,n)  for(int var=0;var<(n);++var)
#
const ll M=1000000007LL;


class ArithmeticSequenceDiv1 {
    public:
    int findMinCost(vector<int> x) {
        int n=x.size();
        int best = 0x7fffffff;
        for (int a0=-200; a0<=200; ++a0){
            for (int d=-100; d<=100; ++d){
                int cost = 0;
                rep(i,n){
                    int xi = a0 + d*i;
                    cost += abs(xi - x[i]);
                }
                best = min(best, cost);
            }
        }
        return best;
    }
};

7行目に消し忘れの # があったけどコンパイル通ってた…(焦)

Medium (500)

小さい順に空いてる手をdequeに入れて下で拾う→最後辻褄合わせ
→撃墜
もしかして:途中で2つのサイクルが出来てる?(眠くて考えられないので後で)

Hard (1000)

時間が微妙に余ったので記念に嘘解法(n個おきに取るだけ)を投げた
→瞬殺