CSES - COCI 2007/2008 #1 - Results
Submission details
Task:Prinova
Sender:untokarila
Submission time:2019-07-29 15:31:51 +0300
Language:C++11
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED100
Test results
testverdicttime
#1ACCEPTED0.01 sdetails
#2ACCEPTED0.01 sdetails
#3ACCEPTED0.01 sdetails
#4ACCEPTED0.01 sdetails
#5ACCEPTED0.01 sdetails
#6ACCEPTED0.01 sdetails
#7ACCEPTED0.01 sdetails
#8ACCEPTED0.01 sdetails
#9ACCEPTED0.01 sdetails
#10ACCEPTED0.01 sdetails

Code

#include <iostream>
#include <algorithm>
#define F first
#define S second

using namespace std;

int d[100];
pair<int, int> p;

int main(){

    int n, a, b;
    cin >> n;

    for(int i=0; i<n; i++) cin >> d[i];

    cin >> a >> b;

    sort(d, d+n);

    for(int i=1; i<n; i++){
        if(d[i]<a) continue;
        if(d[i-1]>b) continue;

        int dist = (d[i]-d[i-1])/2;

        if(d[i-1]+dist <= a){
            dist = a-d[i-1];
            if(!((d[i-1]+dist)&1)) dist++;
        }
        if(d[i-1]+dist >= b){
            dist = b-d[i-1];
            if(!((d[i-1]+dist)&1)) dist--;
        }
        if(!((d[i-1]+dist)&1)) dist++;

        int val = min(dist, d[i]-d[i-1]-dist);

        if(val > p.F) p = {val, d[i-1]+dist};
    }

    if(!(a&1)) a++;
    if(!(b&1)) b--;
    if(a<=d[0] && d[0]-a >= p.F) p = {d[0]-a, a};
    if(b>=d[n-1] && b-d[n-1] >= p.F) p = {b-d[n-1], b};

    cout << p.S;

    return 0;
}

Test details

Test 1

Verdict: ACCEPTED

input
5
38 50 60 30 48
23 69

correct output
69

user output
69

Test 2

Verdict: ACCEPTED

input
5
12 10 50 24 40
9 16

correct output
15

user output
15

Test 3

Verdict: ACCEPTED

input
10
46 64 26 82 18 106 60 138 194 ...

correct output
165

user output
167

Test 4

Verdict: ACCEPTED

input
20
114 48 86 180 176 66 126 194 5...

correct output
99

user output
101

Test 5

Verdict: ACCEPTED

input
30
46 112 106 70 186 80 62 2 162 ...

correct output
25

user output
25

Test 6

Verdict: ACCEPTED

input
50
7362 772 4354 5462 4924 5224 2...

correct output
3953

user output
3953

Test 7

Verdict: ACCEPTED

input
67
7518 4798 5528 3806 7798 3396 ...

correct output
6467

user output
6467

Test 8

Verdict: ACCEPTED

input
79
263044060 323471968 60083128 7...

correct output
173959055

user output
173959057

Test 9

Verdict: ACCEPTED

input
99
412812216 39588698 618476302 2...

correct output
2577535

user output
2577535

Test 10

Verdict: ACCEPTED

input
100
635179944 592614358 645156538 ...

correct output
493216533

user output
493216533