Submission #1380846


Source Code Expand

#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
#include <numeric>
using namespace std;

using ull = unsigned long long;
using vvi = vector<vector<int>>;

class Combinations{
    // n 個の中から k 個を選ぶ組み合わせを列挙する
    ull S;
    ull E;
public:
    Combinations(int n, int k):S((1ull << k) - 1ull), E(~((1ull << n) - 1ull)){}
    ull next(){
        ull currentS = S;
        if (S & E) return 0ull;
        ull smallest = S & -S;
        ull ripple = S + smallest;
        ull nsmallest = ripple & -ripple;
        S = ripple | (((nsmallest / smallest) >> 1) - 1);
        return currentS;
    }
};

int calc(int xmask, int M, int Q, const vvi &xyz){
    vector<int> hs(M, 0);
    for (int g = 0; xmask; ++g, xmask >>= 1){
        if (xmask & 1){
            for (int b = 0; b != M; ++b){
                hs[b] += xyz[g][b];
            }
        }
    }
    sort(hs.begin(), hs.end(), greater<int>());
    return accumulate(hs.begin(), hs.begin()+Q, 0);
}

int main() {
    cin.tie(0);
    ios::sync_with_stdio(false);
    int N, M, P, Q, R;
    cin >> N >> M >> P >> Q >> R;
    vvi xyz(N, vector<int>(M, 0));
    for (int r = 0; r != R; ++r){
        int x, y, z;
        cin >> x >> y >> z;
        xyz[x - 1][y - 1] = z;
    }
    int max_happiness = 0;
    Combinations cb(N, P);
    while (int xmask = cb.next()){
        max_happiness = max(max_happiness, calc(xmask, M, Q, xyz));
    }
    cout << max_happiness << endl;
    return 0;
}

Submission Info

Submission Time
Task D - バレンタインデー
User rpy3cpp
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1567 Byte
Status AC
Exec Time 26 ms
Memory 384 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 30 / 30 70 / 70
Status
AC × 2
AC × 32
AC × 52
Set Name Test Cases
Sample subtask0-sample01.txt, subtask0-sample02.txt
Subtask1 subtask0-sample01.txt, subtask0-sample02.txt, subtask1-01.txt, subtask1-02.txt, subtask1-03.txt, subtask1-04.txt, subtask1-05.txt, subtask1-06.txt, subtask1-07.txt, subtask1-08.txt, subtask1-09.txt, subtask1-10.txt, subtask1-11.txt, subtask1-12.txt, subtask1-13.txt, subtask1-14.txt, subtask1-15.txt, subtask1-16.txt, subtask1-17.txt, subtask1-18.txt, subtask1-19.txt, subtask1-20.txt, subtask1-21.txt, subtask1-22.txt, subtask1-23.txt, subtask1-24.txt, subtask1-25.txt, subtask1-26.txt, subtask1-27.txt, subtask1-28.txt, subtask1-29.txt, subtask1-30.txt
Subtask2 subtask0-sample01.txt, subtask0-sample02.txt, subtask1-01.txt, subtask1-02.txt, subtask1-03.txt, subtask1-04.txt, subtask1-05.txt, subtask1-06.txt, subtask1-07.txt, subtask1-08.txt, subtask1-09.txt, subtask1-10.txt, subtask1-11.txt, subtask1-12.txt, subtask1-13.txt, subtask1-14.txt, subtask1-15.txt, subtask1-16.txt, subtask1-17.txt, subtask1-18.txt, subtask1-19.txt, subtask1-20.txt, subtask1-21.txt, subtask1-22.txt, subtask1-23.txt, subtask1-24.txt, subtask1-25.txt, subtask1-26.txt, subtask1-27.txt, subtask1-28.txt, subtask1-29.txt, subtask1-30.txt, subtask2-01.txt, subtask2-02.txt, subtask2-03.txt, subtask2-04.txt, subtask2-05.txt, subtask2-06.txt, subtask2-07.txt, subtask2-08.txt, subtask2-09.txt, subtask2-10.txt, subtask2-11.txt, subtask2-12.txt, subtask2-13.txt, subtask2-14.txt, subtask2-15.txt, subtask2-16.txt, subtask2-17.txt, subtask2-18.txt, subtask2-19.txt, subtask2-20.txt
Case Name Status Exec Time Memory
subtask0-sample01.txt AC 1 ms 256 KB
subtask0-sample02.txt AC 1 ms 256 KB
subtask1-01.txt AC 1 ms 256 KB
subtask1-02.txt AC 1 ms 256 KB
subtask1-03.txt AC 1 ms 256 KB
subtask1-04.txt AC 1 ms 256 KB
subtask1-05.txt AC 1 ms 256 KB
subtask1-06.txt AC 1 ms 256 KB
subtask1-07.txt AC 1 ms 256 KB
subtask1-08.txt AC 1 ms 256 KB
subtask1-09.txt AC 1 ms 256 KB
subtask1-10.txt AC 1 ms 256 KB
subtask1-11.txt AC 1 ms 256 KB
subtask1-12.txt AC 1 ms 256 KB
subtask1-13.txt AC 1 ms 256 KB
subtask1-14.txt AC 1 ms 256 KB
subtask1-15.txt AC 1 ms 256 KB
subtask1-16.txt AC 1 ms 256 KB
subtask1-17.txt AC 1 ms 256 KB
subtask1-18.txt AC 1 ms 256 KB
subtask1-19.txt AC 1 ms 256 KB
subtask1-20.txt AC 1 ms 256 KB
subtask1-21.txt AC 1 ms 256 KB
subtask1-22.txt AC 1 ms 256 KB
subtask1-23.txt AC 1 ms 256 KB
subtask1-24.txt AC 1 ms 256 KB
subtask1-25.txt AC 1 ms 256 KB
subtask1-26.txt AC 1 ms 256 KB
subtask1-27.txt AC 1 ms 256 KB
subtask1-28.txt AC 1 ms 256 KB
subtask1-29.txt AC 1 ms 256 KB
subtask1-30.txt AC 1 ms 256 KB
subtask2-01.txt AC 1 ms 256 KB
subtask2-02.txt AC 1 ms 256 KB
subtask2-03.txt AC 1 ms 256 KB
subtask2-04.txt AC 1 ms 256 KB
subtask2-05.txt AC 24 ms 256 KB
subtask2-06.txt AC 25 ms 256 KB
subtask2-07.txt AC 25 ms 256 KB
subtask2-08.txt AC 25 ms 256 KB
subtask2-09.txt AC 26 ms 256 KB
subtask2-10.txt AC 25 ms 256 KB
subtask2-11.txt AC 25 ms 256 KB
subtask2-12.txt AC 25 ms 384 KB
subtask2-13.txt AC 25 ms 256 KB
subtask2-14.txt AC 24 ms 256 KB
subtask2-15.txt AC 25 ms 256 KB
subtask2-16.txt AC 25 ms 256 KB
subtask2-17.txt AC 25 ms 384 KB
subtask2-18.txt AC 25 ms 256 KB
subtask2-19.txt AC 25 ms 256 KB
subtask2-20.txt AC 25 ms 256 KB