제출 #243106

#제출 시각아이디문제언어결과실행 시간메모리
243106osaaateiasavtnlBroken Device (JOI17_broken_device)C++14
0 / 100
5 ms432 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[100]; mt19937 rnd1(2007); void Anna( int N, long long X, int K, int P[] ){ for (int i = 0; i < 100; ++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 with = 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) ++tryed; return (!used[i] || !(x&1)) && (!used[i+1] || !((x >> 1) & 1)); }; with += used[i] || used[i+1]; if (check()) { int x = tri[ptr]+1; x += sh1[ptr]; 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() && with < 38) { exit(1); } }
#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[100]; mt19937 rnd2(2007); long long Bruno( int N, int A[] ){ for (int i = 0; i < 100; ++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[ptr]; if (add < 1) add += 3; ++ptr; --add; ans = ans * 3 + add; } } return ans; }

컴파일 시 표준 에러 (stderr) 메시지

Anna.cpp: In lambda function:
Anna.cpp:55: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:89:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if (ptr == tri.size() && with < 38) {
         ~~~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...