Codeforces Round #284 Div2

久しぶりにcodeforcesに出た。Cが幾何で愚直に線分交差判定しようとして謎バグで死んだ。普通に代入して不等式で判別するだけで解けるらしい。数学力の無さ…。

A

int main() {
    ios_base::sync_with_stdio(0);
    vector<pair<int,int>> v;
    int n, x, a, b, ans = 0;
    cin >> n >> x;
    rep(i, n) {
        cin >> a >> b;
        v.pb(mp(a,b));
    }
    sort(all(v));

    int p = 0, m = v[n-1].second;
    rep(i, v.size()) {
        for(; p <= m; p += x) {
            if(p + x >= v[i].first) {
                break;
            }
        }
        ans += v[i].second - p;
        p = v[i].second;
    }

    cout << ans << endl;
}

B

int main() {
    ios_base::sync_with_stdio(0);

    int n, l;
    cin >> n >> l;

    string a,b,c;
    map<string, string> m;
    rep(i,l) {
        cin >> a >> b;
        if(a.size() > b.size()) {
            m[a] = b;
        } else {
            m[a] = a;
        }
    }

    cin >> c;
    cout << m[c];
    rep(i,n-1) {
        cin >> c;
        cout << ' ' << m[c]; 
    }
    cout << endl;
}

// あとでコード上げる