Submission #570923

#TimeUsernameProblemLanguageResultExecution timeMemory
570923sff_user사탕 분배 (IOI21_candies)C++17
0 / 100
5020 ms17580 KiB
#include "candies.h"
#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();
    int yes=1;
    for(int i = 0 ; i < q ; i++) if(v[i] < 0) yes=0;
    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(n);
        for(int i = 0 ;i < n ; i++) not_F[i] = 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;
}

Compilation message (stderr)

candies.cpp: In function 'std::vector<int> distribute_candies(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
candies.cpp:26:43: warning: 'mid2' may be used uninitialized in this function [-Wmaybe-uninitialized]
   26 |             int li=0,ri=not_F.size(),mid1,mid2;
      |                                           ^~~~
candies.cpp:26:38: warning: 'mid1' may be used uninitialized in this function [-Wmaybe-uninitialized]
   26 |             int li=0,ri=not_F.size(),mid1,mid2;
      |                                      ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...