Submission #243121

#TimeUsernameProblemLanguageResultExecution timeMemory
243121osaaateiasavtnlBroken Device (JOI17_broken_device)C++14
100 / 100
62 ms3312 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" int sh1[200]; mt19937 rnd1(2007); void Anna( int N, long long X, int K, int P[] ){ for (int i = 0; i < 200; ++i) sh1[i] = rnd1()%3; /* 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 tryed = 0; int i = 0, ptr = 0; int em = 0; while (i + 1 < N) { auto check = [&]() { if (ptr == tri.size()) return false; int x = tri[ptr]+1; x += sh1[i]; if (x > 3) x -= 3; bool ans = (!used[i] || !(x&1)) && (!used[i+1] || !((x >> 1) & 1)); if ((!used[i] || !used[i+1]) && !ans) ++tryed; return (!used[i] || !(x&1)) && (!used[i+1] || !((x >> 1) & 1)); }; if (!used[i] && !used[i+1]) ++em; if (check()) { int x = tri[ptr]+1; x += sh1[i]; if (x > 3) x -= 3; ++ptr; Set(i, x & 1); Set(i + 1, (x >> 1) & 1); } else { Set(i, 0); Set(i + 1, 0); } i += 2; } if (ptr < tri.size()) { /* cout << "tri : " << tri.size() << endl; debug(em); for (int i = 0; i < tri.size(); ++i) { int x = tri[i]+1; x += sh1[i]; if (x > 3) x -= 3; cout << x << ' '; } cout << endl; ptr = 0; i = 0; while (i + 1 < N) { auto check = [&]() { if (ptr == tri.size()) return false; int x = tri[ptr]+1; x += sh1[ptr]; if (x > 3) x -= 3; bool ans = (!used[i] || !(x&1)) && (!used[i+1] || !((x >> 1) & 1)); if ((!used[i] || !used[i+1]) && !ans) { cout << "tryed " << i << ' ' << x << endl; } return (!used[i] || !(x&1)) && (!used[i+1] || !((x >> 1) & 1)); }; if (check()) { int x = tri[ptr]+1; x += sh1[ptr]; if (x > 3) x -= 3; ++ptr; } else { } i += 2; } exit(0); */ while (1) cout << "find" << endl; exit(0); } }
#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" int sh2[200]; mt19937 rnd2(2007); long long Bruno( int N, int A[] ){ for (int i = 0; i < 200; ++i) sh2[i] = rnd2()%3; /* 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) { add -= sh2[i]; if (add < 1) add += 3; ++ptr; --add; ans = ans * 3 + add; } } return ans; }

Compilation message (stderr)

Anna.cpp: In lambda function:
Anna.cpp:57:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             if (ptr == tri.size())
                 ~~~~^~~~~~~~~~~~~
Anna.cpp: In function 'void Anna(int, long long int, int, int*)':
Anna.cpp:92:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if (ptr < tri.size()) { 
         ~~~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...