이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <vector>
#include<bits/stdc++.h>
using namespace std;
vector<int> distribute_candies(vector<int> c, vector<int> l,
vector<int> r, vector<int> v) {
int n = c.size();
vector<int> s(n,0);
int q=l.size();
bool yes=true;
for(int i = 0 ; i < q ; i++) if(v[i] < 0) yes=false;
if(!yes){
for(int i = 0 ; i < q ; i++){
for(int j = l[i] ; j <= r[i] ; j ++){
if(v[i] > 0) s[j] = min(c[j],s[j]+v[i]);
else s[j] = max(0,s[j]+v[i]);
}
}
}
else{
vector<int> not_F;
for(int i = 0 ;i < n ; i++) not_F.push_back(i);
for(int i = 0 ; i < q ; i++){
int li=0,ri=not_F.size(),mid1,mid2;
while(li <= ri){
mid1=(ri+li)/2;
if(not_F[mid1] >= l[i]){
ri= mid1-1;
}
else{
li=mid1+1;
}
}
li=0,ri=not_F.size();
while(li <= ri){
mid2=(ri+li)/2;
if(not_F[mid2] <= r[i]){
li= mid2+1;
}
else{
ri=mid2-1;
}
}
for(int j = mid1;j<=mid2;j++){
s[j] = min(c[j],s[j]+v[i]);
if(s[j]==c[j]) not_F.erase(not_F.begin()+j);
}
}
}
return s;
}
/*vector<int> distribute_candies1(vector<int> c, vector<int> l,
vector<int> r, vector<int> v) {
int n = c.size();
vector<int> s(n,0);
int q=l.size();
for(int i = 0 ; i < q ; i++){
for(int j = l[i] ; j <= r[i] ; j ++){
if(v[i] > 0) s[j] = min(c[j],s[j]+v[i]);
else s[j] = max(0,s[j]+v[i]);
}
}
return s;
}
int main(){
int n,q;
cin >> n >> q;
vector<int>c(n),l(q),r(q),v(q);
for(int i = 0 ; i < n ; i++) cin >> c[i];
for(int i = 0 ; i < q ; i++) cin >> l[i];
for(int i = 0 ; i < q ; i++) cin >> r[i];
for(int i = 0 ; i < q ; i++) cin >> v[i];
vector<int> cc = distribute_candies2(c,l,r,v);
cout <<"daz"<<endl;
for(int c:cc)cout<<c<<" ";
cout << endl;
vector<int> cc2 = distribute_candies1(c,l,r,v);
for(int c:cc2)cout<<c<<" ";
}*/
컴파일 시 표준 에러 (stderr) 메시지
candies.cpp: In function 'std::vector<int> distribute_candies(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
candies.cpp:25:43: warning: 'mid2' may be used uninitialized in this function [-Wmaybe-uninitialized]
25 | int li=0,ri=not_F.size(),mid1,mid2;
| ^~~~
candies.cpp:25:38: warning: 'mid1' may be used uninitialized in this function [-Wmaybe-uninitialized]
25 | int li=0,ri=not_F.size(),mid1,mid2;
| ^~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |