[Offer收割]编程练习赛50 register

Ended

Participants:326

Verdict:Time Limit Exceeded
Score:60 / 100
Submitted:2018-03-11 14:03:42

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include<bits/stdc++.h>
using namespace std;
using tp = tuple<int, int, int>;
int main() {
    ios::sync_with_stdio(false);
    int n, m, k;
    cin >> n >> m >> k;
    set<int> s;
    for (int i = 0; i < m; i++) {
        int temp;
        cin >> temp;
        s.insert(temp);
    }
    s.insert(0);
    s.insert(n+1);
    for (int i = 0; i < k; i++) {
        auto l = s.begin();
        auto r = l; r++;
        int d = (*r + *l)/2;
        tp mx{min(d-*l, *r-d), max(d-*l, *r-d), -d};
        r++;
        l++;
        while (r != s.end()) {
            int d = (*r + *l)/2;
            if (d == *l) {
                r++;
                l++;
                continue;
            }
            tp temp{min(d-*l, *r-d), max(d-*l, *r-d), -d};
            mx = max(mx, temp);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX