Submission #1083802

#TimeUsernameProblemLanguageResultExecution timeMemory
1083802SamueleVid메기 농장 (IOI22_fish)C++17
3 / 100
66 ms17488 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long

constexpr int MAXN = 1e5 + 5;

ll sum_tutto(int N, int M, vector<int> X, vector<int> Y, vector<int> W) {
    ll sum = 0;
    for (auto x : W) sum += x;
    return sum;
}

ll res_minore_di_due(int N, int M, vector<int> X, vector<int> Y, vector<int> W) {
    if (N == 2) exit(-1);
    ll sum = 0;
    for (int i = 0; i < M; i ++) {
        if (X[i] == 1) sum += W[i];
    }

    // cout << "sum : " << sum << '\n';

    vector<vector<ll>> pos(2, vector<ll>(N + 5, 0));

    for (int i = 0; i < M; i ++) {
        pos[X[i]][Y[i]] += W[i];
    }

    // for (int i = 0; i < N + 5; i ++) {
    //     cout << pos[0][i] << " ";
    // }
    // cout << '\n';
    // for (int i = 0; i < N + 5; i ++) {
    //     cout << pos[1][i] << " ";
    // }
    // cout << '\n';

    ll best_res = sum;

    ll sum_zero = 0;
    ll sum_uno = 0;
    for (int i = 0; i < N + 5; i ++) {
        sum_zero += pos[0][i];
        sum_uno += pos[1][i];
        best_res = max(best_res, sum - sum_uno + sum_zero);
        // cout << "per i : " << i << " avremmo " << sum - sum_uno + sum_zero << '\n';
    }

    return best_res;
}

ll max_weights(int N, int M, vector<int> X, vector<int> Y, vector<int> W) {
    bool all_even = 1;
    for (auto x : X) if (x % 2) all_even = 0;
    if (all_even) return sum_tutto(N, M, X, Y, W);

    bool minore_di_due = 1;
    for (auto x : X) if (x >= 2) minore_di_due = 0;
    return res_minore_di_due(N, M, X, Y, W);
}

Compilation message (stderr)

fish.cpp: In function 'long long int max_weights(int, int, std::vector<int>, std::vector<int>, std::vector<int>)':
fish.cpp:56:10: warning: variable 'minore_di_due' set but not used [-Wunused-but-set-variable]
   56 |     bool minore_di_due = 1;
      |          ^~~~~~~~~~~~~
#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...