Submission #243097

#TimeUsernameProblemLanguageResultExecution timeMemory
243097osaaateiasavtnlBroken Device (JOI17_broken_device)C++14
85 / 100
54 ms3568 KiB
#include<bits/stdc++.h> using namespace std; #define ii pair <int, int> #define app push_back #define all(a) a.begin(), a.end() #define bp __builtin_popcountll #define ll long long #define mp make_pair #define f first #define s second #define Time (double)clock()/CLOCKS_PER_SEC #define debug(x) std::cout << #x << ": " << x << '\n'; #include "Annalib.h" bool up1[100]; mt19937 rnd1(2007); void Anna( int N, long long X, int K, int P[] ){ for (int i = 0; i < 100; ++i) up1[i] = rnd1()&1; /* for (int i = 0; i < 10; ++i) cout << up1[i]; cout << endl; */ vector <int> tri; while (X) { tri.app(X%3); X /= 3; } reverse(all(tri)); vector <bool> used(N); for (int i = 0; i < K; ++i) used[P[i]] = 1; /* cout << "tri : "; for (auto e : tri) cout << e << ' '; cout << endl; */ int i = 0, ptr = 0; while (i + 1 < N) { auto check = [&]() { if (ptr == tri.size()) return false; int x = tri[ptr]+1; if (up1[ptr]) x = 4 - x; return (!used[i] || !(x&1)) && (!used[i+1] || !((x >> 1) & 1)); }; if (check()) { int x = tri[ptr]+1; if (up1[ptr]) x = 4 - x; ++ptr; Set(i, x & 1); Set(i + 1, (x >> 1) & 1); } else { Set(i, 0); Set(i + 1, 0); } i += 2; } }
#include<bits/stdc++.h> using namespace std; #define ii pair <int, int> #define app push_back #define all(a) a.begin(), a.end() #define bp __builtin_popcountll #define ll long long #define mp make_pair #define f first #define s second #define Time (double)clock()/CLOCKS_PER_SEC #define debug(x) std::cout << #x << ": " << x << '\n'; #include "Brunolib.h" bool up2[100]; mt19937 rnd2(2007); long long Bruno( int N, int A[] ){ for (int i = 0; i < 100; ++i) up2[i] = rnd2()&1; /* for (int i = 0; i < 10; ++i) cout << up2[i]; cout << endl; */ ll ans = 0; int ptr = 0; for (int i = 0; i < N; i += 2) { int add = A[i] + (A[i+1]<<1); if (add) { if (up2[ptr]) { add = 4 - add; } ++ptr; --add; ans = ans * 3 + add; } } return ans; }

Compilation message (stderr)

Anna.cpp: In lambda function:
Anna.cpp:52:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             if (ptr == tri.size())
                 ~~~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...