답안 #495598

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
495598 2021-12-19T12:22:26 Z Half 사탕 분배 (IOI21_candies) C++17
11 / 100
105 ms 12956 KB
#include "candies.h"

#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
typedef unsigned long long int ull;
typedef long double ld;
#define REP(i,a,b) for(ll i=(ll) a; i<(ll) b; i++)
#define pb push_back
#define mp make_pair
#define pl pair<ll,ll>
#define ff first
#define ss second
#define whole(x) x.begin(),x.end()
#define DEBUG(i) cout<<"DEBUG "<<i<<endl
#define INF 500000000LL
#define EPS 0.00000001
#define pi 3.14159
ll mod=1000000007LL;

std::vector<int> distribute_candies(std::vector<int> c, std::vector<int> l,
                                    std::vector<int> r, std::vector<int> v) {
    int n = c.size();
    std::vector<int> s(n);
    int q = l.size();
    if(n*q<=100000000){
        for(int i = 0; i < n; i++){
            ll nc = 0;
            for(int j = 0; j < q; j++){
                if(l[j] <= i && i <= r[j]){
                    nc = max(0LL, min((ll)c[i], nc + (ll)v[j]));
                }
            }
            s[i] = nc;
        }
        return s;
    }
    bool t = true;
    for(int i = 0; i < q; i++){
        t = t && (v[i] > 0);
    }
    if(t){
        ll stp[n+1];
        memset(stp, 0, sizeof stp);
        for(int i = 0; i < q; i++){
            stp[l[i]] += v[i];
            stp[r[i]+1] -= v[i];
        }
        ll sm = 0;
        for(int i = 0; i < n; i++){
            sm += stp[i];
            s[i] = min((ll)c[i], sm);
        }
        return s;
    }
}

Compilation message

candies.cpp: In function 'std::vector<int> distribute_candies(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
candies.cpp:56:1: warning: control reaches end of non-void function [-Wreturn-type]
   56 | }
      | ^
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 11 ms 360 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 94 ms 8796 KB Output is correct
2 Correct 105 ms 12956 KB Output is correct
3 Correct 94 ms 12824 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Incorrect 49 ms 4948 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Incorrect 49 ms 4956 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 11 ms 360 KB Output is correct
6 Correct 94 ms 8796 KB Output is correct
7 Correct 105 ms 12956 KB Output is correct
8 Correct 94 ms 12824 KB Output is correct
9 Correct 1 ms 204 KB Output is correct
10 Incorrect 49 ms 4948 KB Output isn't correct
11 Halted 0 ms 0 KB -