Submission #16448

# Submission time Handle Problem Language Result Execution time Memory
16448 2015-08-25T07:01:01 Z chan492811 Rice Hub (IOI11_ricehub) C++
17 / 100
27 ms 5772 KB
#include "ricehub.h"
#include <cstdlib>
#include <cstdio>
#include <algorithm>
using namespace std;
long long n,m,left,right;
long long b,l,max1,now;
long long arr[100010];
int besthub(int R, int L, int X[], long long B)
{
    long long i;
    n=R; b=B;
    for(i=0;i<n;i++) arr[i]=(long long)X[i];
    while(right<n && now<=b){
        if(arr[right]-arr[0]<=b-now){
            now+=arr[right++]-arr[0];
        }else break;
    }max1=max(max1,right-left);
    for(i=1;i<n;i++){
        now+=(i-left)*(arr[i]-arr[i-1]); now-=(right-i)*(arr[i]-arr[i-1]);
        while(now>b){
            if(arr[i]-arr[left]<=arr[right-1]-arr[i]) now-=arr[--right]-arr[i];
            else now-=arr[i]-arr[left++];
        }
        while(now<=b){
            if(right<n && left>0){
                if(arr[i]-arr[left-1]>=arr[right]-arr[i]){
                    if(arr[right]-arr[i]<=b-now) now+=arr[right++]-arr[i];
                    else break;
                }else{
                    if(arr[i]-arr[left-1]<=b-now) now+=arr[i]-arr[--left];
                    else break;
                }
            }else if(right==n && left>0){
                if(arr[i]-arr[left-1]<=b-now) now+=arr[i]-arr[--left];
                else break;
            }else if(right<n && left==0){
                if(arr[right]-arr[i]<=b-now) now+=arr[right++]-arr[i];
                else break;
            }else break;
        }max1=max(max1,right-left);
    }
    return (int)max1;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 5772 KB Output is correct
2 Correct 0 ms 5772 KB Output is correct
3 Correct 0 ms 5772 KB Output is correct
4 Correct 0 ms 5772 KB Output is correct
5 Correct 0 ms 5772 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 5772 KB Output is correct
2 Correct 0 ms 5772 KB Output is correct
3 Correct 0 ms 5772 KB Output is correct
4 Correct 0 ms 5772 KB Output is correct
5 Correct 0 ms 5772 KB Output is correct
6 Correct 0 ms 5772 KB Output is correct
7 Correct 0 ms 5772 KB Output is correct
8 Correct 0 ms 5772 KB Output is correct
9 Correct 0 ms 5772 KB Output is correct
10 Correct 0 ms 5772 KB Output is correct
11 Correct 0 ms 5772 KB Output is correct
12 Correct 0 ms 5772 KB Output is correct
13 Correct 0 ms 5772 KB Output is correct
14 Incorrect 0 ms 5772 KB Output isn't correct
15 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 5772 KB Output is correct
2 Correct 0 ms 5772 KB Output is correct
3 Correct 0 ms 5772 KB Output is correct
4 Correct 0 ms 5772 KB Output is correct
5 Correct 0 ms 5772 KB Output is correct
6 Correct 0 ms 5772 KB Output is correct
7 Correct 0 ms 5772 KB Output is correct
8 Correct 0 ms 5772 KB Output is correct
9 Correct 0 ms 5772 KB Output is correct
10 Correct 0 ms 5772 KB Output is correct
11 Correct 0 ms 5772 KB Output is correct
12 Correct 0 ms 5772 KB Output is correct
13 Correct 0 ms 5772 KB Output is correct
14 Correct 0 ms 5772 KB Output is correct
15 Incorrect 0 ms 5772 KB Output isn't correct
16 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 5772 KB Output is correct
2 Correct 0 ms 5772 KB Output is correct
3 Correct 17 ms 5772 KB Output is correct
4 Correct 18 ms 5772 KB Output is correct
5 Correct 8 ms 5772 KB Output is correct
6 Correct 11 ms 5772 KB Output is correct
7 Correct 16 ms 5772 KB Output is correct
8 Correct 18 ms 5772 KB Output is correct
9 Correct 0 ms 5772 KB Output is correct
10 Correct 4 ms 5772 KB Output is correct
11 Correct 0 ms 5772 KB Output is correct
12 Correct 27 ms 5772 KB Output is correct
13 Incorrect 3 ms 5772 KB Output isn't correct
14 Halted 0 ms 0 KB -