Submission #540791

# Submission time Handle Problem Language Result Execution time Memory
540791 2022-03-21T18:13:50 Z AmirElarbi Rice Hub (IOI11_ricehub) C++14
68 / 100
18 ms 700 KB
    #include <bits/stdc++.h>
    #include "ricehub.h"

    #define ii pair<int,int>
    #define ve vector
    #define vi vector<int>
    #define vii vector<ii>
    #define pb push_back
    #define fi first
    #define se second
    #define ll long long
    #define MAX_R  1000000
    #define optimise ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
    using namespace std;
    int besthub(int r, int l, int s[], long long b){
        ll cur = b, i = s[0];
        int u = 0, v = 0;
        while(v < r-1 && cur-(s[v+1]-i) >= 0){
            v++;
            cur -= s[v]-i;
        }
        int mx = v-u+1;
        for (int k = 1; k < r; ++k)
        {
            i = s[k];      
            cur += (v-k+1)*(s[k]-s[k-1]) - (k-u)*(s[k]-s[k-1]);   
            if(k > v) v = k;   
            while(cur < 0 && u < v){
                if(i-s[u] < s[v]-i){
                    cur += s[v]-i;
                    v--;
                } else {
                    cur += i-s[u];
                    u++;
                }
            }
            while(v < r-1 && i-s[u] >= s[v+1]-i ){
                cur += i-s[u] - (s[v+1]-i);
                u++;
                v++;
            }
            while(cur >= 0 && (u > 0 || v < r-1)){
                if(v >= r-1){
                    if(cur - (i-s[u-1]) < 0) break;
                    u--;
                    cur -= i-s[u];
                } else if(u <= 0){
                    if(cur - (s[v+1]-i) < 0) break;
                    v++;
                    cur -= s[v]-i;
                } else if(i-s[u-1] > s[v+1]-i){
                    if(cur - (s[v+1]-i) < 0) break;
                    v++;
                    cur -= s[v]-i;
                } else {
                    if(cur - (i-s[u-1]) < 0) break;
                    u--;
                    cur -= i-s[u];
                }
            }
            mx = max(mx,v-u+1);
        }
        return mx;
    }
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 316 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 316 KB Output is correct
11 Correct 0 ms 316 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 0 ms 212 KB Output is correct
14 Correct 0 ms 312 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 1 ms 212 KB Output is correct
17 Correct 0 ms 316 KB Output is correct
18 Correct 0 ms 212 KB Output is correct
19 Correct 0 ms 316 KB Output is correct
20 Correct 1 ms 212 KB Output is correct
21 Correct 1 ms 212 KB Output is correct
22 Correct 1 ms 212 KB Output is correct
23 Correct 1 ms 212 KB Output is correct
24 Correct 1 ms 212 KB Output is correct
25 Correct 1 ms 316 KB Output is correct
26 Correct 1 ms 212 KB Output is correct
27 Correct 0 ms 212 KB Output is correct
28 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 256 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 1 ms 212 KB Output is correct
14 Correct 1 ms 316 KB Output is correct
15 Correct 1 ms 212 KB Output is correct
16 Correct 1 ms 312 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 340 KB Output is correct
19 Correct 1 ms 212 KB Output is correct
20 Correct 1 ms 212 KB Output is correct
21 Correct 1 ms 340 KB Output is correct
22 Correct 1 ms 340 KB Output is correct
23 Correct 1 ms 340 KB Output is correct
24 Correct 1 ms 340 KB Output is correct
25 Correct 1 ms 352 KB Output is correct
26 Correct 1 ms 324 KB Output is correct
27 Correct 1 ms 340 KB Output is correct
28 Correct 2 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 340 KB Output is correct
2 Correct 2 ms 340 KB Output is correct
3 Correct 18 ms 596 KB Output is correct
4 Correct 11 ms 596 KB Output is correct
5 Correct 5 ms 468 KB Output is correct
6 Correct 5 ms 468 KB Output is correct
7 Correct 10 ms 664 KB Output is correct
8 Correct 9 ms 616 KB Output is correct
9 Correct 5 ms 496 KB Output is correct
10 Correct 5 ms 468 KB Output is correct
11 Correct 12 ms 624 KB Output is correct
12 Incorrect 13 ms 700 KB Output isn't correct
13 Halted 0 ms 0 KB -