Submission #1034998

#TimeUsernameProblemLanguageResultExecution timeMemory
1034998adaawfBroken Device (JOI17_broken_device)C++17
47 / 100
27 ms3056 KiB
#include "Annalib.h"
#include <bits/stdc++.h>
using namespace std;
int dd[1005], b[1005], z = 0;
/*void Set(int x, int y) {
    if (dd[x] == 1) b[z] = 0;
    else b[z] = y;
    z++;
}*/
void Anna(int N, long long int X, int K, int P[]) {
    for (int i = 0; i < N; i++) dd[i] = 0;
    for (int i = 0; i < K; i++) {
        dd[P[i]] = 1;
    }
    vector<int> v;
    int z = 0, t = 0;
    string s = "";
    for (int i = 0; i < 60; i++) {
        if (X & (1ll << i)) {
            s += '1';
        }
        else s += '0';
        Set(i, s[i] - '0');
    }
    z = s.size() - 1;
    while (z >= t) {
        if (s[t] == '0' || dd[t] == 1) {
            if (s[t] == '0') {
                z++;
                s += '1';
                Set(z, 1);
            }
            else {
                z++;
                s += '0';
                Set(z, 0);
            }
        }
        if (z == N - 1) break;
        t++;
    }
    for (int i = s.size(); i < N; i++) Set(i, 1);
}
#include "Brunolib.h"
#include <bits/stdc++.h>
using namespace std;
long long int Bruno(int N, int A[]) {
    int z = 0, flag = 0;
    vector<int> v, res(61, 1);
    for (int i = 0; i < 60; i++) v.push_back(i);
    while (!v.empty()) {
        vector<int> vv;
        for (int i = z; i < z + v.size(); i++) {
            if (i == N) {
                flag = 1;
                break;
            }
            if (A[i] == 0) {
                res[v[i - z]] ^= 1;
                vv.push_back(v[i - z]);
            }
        }
        if (flag == 1) break;
        z += v.size();
        v = vv;
    }
    long long int c = 0;
    for (int i = 0; i < 60; i++) {
        if (res[i] == 1) {
            c += (1ll << i);
        }
    }
    return c;
}

Compilation message (stderr)

Bruno.cpp: In function 'long long int Bruno(int, int*)':
Bruno.cpp:10:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   10 |         for (int i = z; i < z + v.size(); i++) {
      |                         ~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...