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

Ended

Participants:64

Verdict:Wrong Answer
Score:60 / 100
Submitted:2019-05-19 14:25:32

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;
#define dbg(x) cerr << #x"=" << x << endl;
typedef long long LL;
int main(){
   // freopen("in.txt", "r", stdin);
    LL X,Y,H,D;
    scanf("%lld+%lld", &X, &Y);
    scanf("%lld+%lld", &H, &D);
    LL fm = (D+1)*(Y+1);
    LL k = X-H;
    if(k < -1LL*Y) {
        printf("0.00\n");
    } else if(k > D){
        printf("1.00\n");
    } else {
        LL fz = 0;
        bool f1 = (-1LL*k >= 0 && -1LL*k <= Y);
        bool f2 = ((Y+k) >= 0 && (Y+k) <= D);
        bool f3 = ((D-k) >= 0 && (D-k) <= Y);
        bool f4 = (k >= 0 && k <= D);
        if(f1 && f2){
            fz = (Y+k+1)*(Y+k+2)/2;
        }
        if(f1 && f3){
            fz = (Y+1)*(Y+2LL*k+2)/2;
        }
        if(f4 && f3){
            fz = (Y+1)*k + (Y-k+1)*(Y+k+2)/2;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX