제출 #816894

#제출 시각아이디문제언어결과실행 시간메모리
816894finn__메기 농장 (IOI22_fish)C++17
3 / 100
69 ms7276 KiB
#include "fish.h"

#include <bits/stdc++.h>
using namespace std;

constexpr size_t N = 3000;

struct state
{
    int64_t zero;
};

long long max_weights(int n, int m, vector<int> x, vector<int> y, vector<int> w)
{
    // subtask 1
    {
        bool all_even = 1;
        for (size_t i = 0; i < m; ++i)
            all_even &= !(x[i] & 1);
        if (all_even)
        {
            int64_t sum = 0;
            for (size_t i = 0; i < m; ++i)
                sum += w[i];
            return sum;
        }
    }

    // subtask 2
    {
        bool leq1 = 1;
        for (size_t i = 0; i < m; ++i)
            leq1 &= x[i] <= 1;
        if (leq1)
        {
            int64_t z = 0;
            vector<pair<int, int>> zero, one;
            for (size_t i = 0; i < m; ++i)
                if (x[i])
                    one.emplace_back(y[i], w[i]), z += w[i];
                else
                    zero.emplace_back(y[i], w[i]);
            sort(one.begin(), one.end());
            sort(zero.begin(), zero.end());

            int64_t ans = z;
            auto it = zero.begin(), jt = one.begin();
            for (int i = 0; i <= n && (it != zero.end() || jt != one.end()); ++i)
            {
                while (it != zero.end() && it->first < i)
                    z += it->second, ++it;
                while (jt != one.end() && jt->first < i)
                    z -= jt->second, ++jt;
                ans = max(ans, z);
            }

            return ans;
        }
    }
}

컴파일 시 표준 에러 (stderr) 메시지

fish.cpp: In function 'long long int max_weights(int, int, std::vector<int>, std::vector<int>, std::vector<int>)':
fish.cpp:18:30: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   18 |         for (size_t i = 0; i < m; ++i)
      |                            ~~^~~
fish.cpp:23:34: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   23 |             for (size_t i = 0; i < m; ++i)
      |                                ~~^~~
fish.cpp:32:30: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   32 |         for (size_t i = 0; i < m; ++i)
      |                            ~~^~~
fish.cpp:38:34: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   38 |             for (size_t i = 0; i < m; ++i)
      |                                ~~^~~
fish.cpp:60:1: warning: control reaches end of non-void function [-Wreturn-type]
   60 | }
      | ^
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...