답안 #830014

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
830014 2023-08-18T17:35:03 Z OAleksa 쌀 창고 (IOI11_ricehub) C++14
0 / 100
4 ms 596 KB
#include <bits/stdc++.h>
#include "ricehub.h"
#define f first
#define s second
using namespace std; 

int besthub(int R, int L, int X[], long long B)
{
  	int n = R;
  	int a[n];
  	for(int i = 0;i < n;i++)
  		a[i] = X[i];
	int ans = 1;
  	set<int> levo, desno;
  	long long t = 0;
  	desno.insert(0);
  	for(int i = 1;i < n;i++) {	
  		if(t + a[i] - a[0] <= B) {
  			desno.insert(i);
  			t += a[i] - a[0];
  			++ans;
  		}
  	}
  	for(int i = 1;i < n;i++) {
  		t -= ((int)desno.size() - 1) * (a[i] - a[i - 1]);
  		t += ((int)levo.size() + 1) * (a[i] - a[i - 1]);
  		if(desno.size() > 0)
  			desno.erase(desno.begin());
  		desno.insert(i);
  		levo.insert(i - 1);
  		while(levo.size() > 0 && t > B) {
  			int x = *levo.begin();
  			t -= (a[i] - a[x]);
  			levo.erase(levo.begin());
  		}
  		int j = *--desno.end() + 1;
  		while(j < n) {
  			if(t + a[j] - a[i] <= B) {
  				t += a[j] - a[i];
  				desno.insert(j++);
  			}
  			else	
  				break;
  		}
  		while(j < n && levo.size() > 0) {
  			int x = *levo.begin();
  			if(t - (a[i] - a[x]) + a[j] - a[i] <= B) {
  				t =  t - (a[i] - a[x]) + a[j] - a[i];
  				levo.erase(levo.begin());
  				desno.insert(a[j++]);
  			}
  			else
  				break;
  		}
  		ans = max(ans, (int)levo.size() + (int)desno.size());
  	}
  	return ans;
}

// signed main()
// {
	// ios_base::sync_with_stdio(false);
	// cin.tie(0);
	// cout.tie(0);
	// int tt = 1;
	// //cin >> tt;
	// while(tt--) {
		 // int n, k;
		 // long long x;
		 // cin >> n >> k >> x;
		 // int a[n];
		 // for(int i = 0;i < n;i++)
		 	// cin >> a[i];
		// cout << besthub(n, k, a, x);
	// }
   // return 0;
// }
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 312 KB Output is correct
2 Incorrect 0 ms 212 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 312 KB Output is correct
3 Correct 0 ms 312 KB Output is correct
4 Incorrect 0 ms 212 KB Output isn't correct
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 596 KB Output isn't correct
2 Halted 0 ms 0 KB -