Submission #238222

# Submission time Handle Problem Language Result Execution time Memory
238222 2020-06-10T09:27:47 Z Sorting Restore Array (RMI19_restore) C++14
13 / 100
10 ms 512 KB
#include <bits/stdc++.h>

using namespace std;

const int k_N = 5000 + 3;
const int k_M = 10000 + 3;

struct Constraint{
    int l, r, k, value;

    Constraint(){}
    Constraint(int l, int r, int k, int value){
        this->l = l;
        this->r = r;
        this->k = k;
        this->value = value;
    }
};

int n, m;
int a[k_N];
Constraint c[k_M];

int prefix[k_N];

int get_count_ones(int l, int r){
    if(l == 0)
        return prefix[r];
    return prefix[r] - prefix[l - 1];
}

int main(){
    ios::sync_with_stdio(false);
    cin.tie(NULL);

    cin >> n >> m;

    for(int i = 0; i < m; ++i)
        cin >> c[i].l >> c[i].r >> c[i].k >> c[i].value;

    for(int i = 0; i < n; ++i)
        a[i] = 0;

    for(int i = 0; i < m; ++i){
        auto [l, r, k, value] = c[i];

        if(k == 1 && value == 1){
            for(int j = l; j <= r; ++j)
                a[j] = 1;
        }
        else if(k == (r - l + 1) && value == 0){
            for(int j = l; j <= r; ++j)
                a[j] = 0;
        }
    }

    prefix[0] = 0;
    for(int i = 1; i < n; ++i)
        prefix[i] = prefix[i - 1] + a[i];

    for(int i = 0; i < m; ++i){
        int count_ones = get_count_ones(c[i].l, c[i].r);
        int count_zeros = (c[i].r - c[i].l + 1) - count_ones;

        if(c[i].value == 0 && count_zeros >= c[i].k)
            continue;
        if(c[i].value == 1 && count_zeros < c[i].k)
            continue;

        cout << "-1\n";
        return 0;
    }

    for(int i = 0; i < n; ++i)
        cout << a[i] << " ";
    cout << "\n";
}

Compilation message

restore.cpp: In function 'int main()':
restore.cpp:45:14: warning: decomposition declaration only available with -std=c++1z or -std=gnu++1z
         auto [l, r, k, value] = c[i];
              ^
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 8 ms 512 KB Output is correct
2 Correct 8 ms 512 KB Output is correct
3 Correct 8 ms 384 KB Output is correct
4 Correct 8 ms 512 KB Output is correct
5 Correct 10 ms 512 KB Output is correct
6 Correct 9 ms 512 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 8 ms 512 KB Output is correct
2 Correct 8 ms 512 KB Output is correct
3 Correct 8 ms 384 KB Output is correct
4 Correct 8 ms 512 KB Output is correct
5 Correct 10 ms 512 KB Output is correct
6 Correct 9 ms 512 KB Output is correct
7 Incorrect 8 ms 512 KB Output isn't correct
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -