답안 #849768

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
849768 2023-09-15T10:00:30 Z CSQ31 사탕 분배 (IOI21_candies) C++17
0 / 100
5000 ms 2097152 KB
#include "candies.h"
#include<bits/stdc++.h>
using namespace std;
#define pb push_back
#define fi first
#define se second
#define sz(a) (int)(a.size())
#define all(a) a.begin(),a.end()
#define lb lower_bound
#define ub upper_bound
typedef long long int ll;
vector<int> distribute_candies(vector<int> c,vector<int> l,vector<int> r,vector<int> v) {
    int n = sz(c);
    int q = sz(l);
    vector<vector<ll>>ch(n);
    for(int i=0;i<n;i++)ch[i].pb(0);
    for(int i=0;i<q;i++){
		for(int j=l[i];j<=r[i];j++)ch[j].pb(v[i]);
	}
	vector<int>ans(n);
	for(int i=0;i<n;i++){
		int m = sz(ch[i]);
		for(int j=1;j<m;j++)ch[i][j]+=ch[i][j-1];
		ll mx = -1e18;
		ll mn = 1e18;
		int last = m;
		for(int j=m-1;j>=0;j--){
			if(mn >= ch[i][j] && mx - ch[i][j] <= c[i])last = j;
			if(mx <= ch[i][j] && ch[i][j] - mn <= c[i])last = j;
			
			mn = min(mn,ch[i][j]);
			mx = max(mx,ch[i][j]);
		}
		////for(auto x:ch[i])cout<<x<<" ";
		//cout<<last<<'\n';
		
		ll x = ch[i][m-1] - ch[i][last];
		if(last && ch[i][last] - ch[i][last-1] > 0)x+=c[i];
		ans[i] = x;
	}
	return ans;
		
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 548 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 5026 ms 2097152 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 600 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 548 KB Output isn't correct
2 Halted 0 ms 0 KB -