Submission #71620

#TimeUsernameProblemLanguageResultExecution timeMemory
71620BruteforcemanBroken Device (JOI17_broken_device)C++11
100 / 100
76 ms3744 KiB
#include "Annalib.h" #include "bits/stdc++.h" using namespace std; // 100 = 0 // 011 = 0 // 010 = 1 // 101 = 1 // 111 // 101 // 110 // 000 void Anna( int N, long long X, int K, int P[] ){ int broke[N]; for(int i = 0; i < N; i++) { broke[i] = 0; } for(int i = 0; i < K; i++) { broke[P[i]] = 1; } string s = ""; int bit = 0; for(int i = 0; i < N; i += 3) { if(bit > 62) break; int cnt = broke[i] + broke[i+1] + broke[i+2]; if(cnt == 1) { if(broke[i]) { if((X >> bit) & 1) { s += "010"; } else { s += "001"; } ++bit; } else if (broke[i+1]) { int p = (X >> bit) & 1; ++bit; int q = (X >> bit) & 1; ++bit; if(p == 0) { s += "001"; --bit; } if(p == 1 && q == 0) s += "100"; if(p == 1 && q == 1) s += "101"; } else { if((X >> bit) & 1) { s += "010"; } else { s += "110"; } ++bit; } } else if (cnt == 0) { int p = (X >> bit) & 1; ++bit; int q = (X >> bit) & 1; ++bit; if(p == 0 && q == 0) { s += "011"; } if(p == 0 && q == 1) { s += "111"; } if(p == 1 && q == 0) { s += "100"; } if(p == 1 && q == 1) { s += "101"; } } else { s += "000"; } } while(s.size() < N) { s += "0"; } // cerr << "bits covered: " << bit << endl; for(int i = 0; i < N; i++) { // cerr << i << ' ' << s[i] << endl; Set(i, s[i] - '0'); } }
#include "Brunolib.h" #include "bits/stdc++.h" using namespace std; long long Bruno( int N, int A[] ){ int bit = 0; long long ans = 0; for(int i = 0; i < N; i += 3) { if(bit > 61) break; string s = ""; s += char (A[i] + '0'); s += char (A[i+1] + '0'); s += char (A[i+2] + '0'); if(s == "010") { ans |= 1LL << bit; ++bit; } if(s == "001" || s == "110") { ++bit; } if(s == "011") { bit += 2; } if(s == "111") { ++bit; ans |= 1LL << bit; ++bit; } if(s == "100") { ans |= 1LL << bit; ++bit; ++bit; } if(s == "101") { ans |= 1LL << bit; ++bit; ans |= 1LL << bit; ++bit; } } // cerr << "found " << ans << endl; return ans; }

Compilation message (stderr)

Anna.cpp: In function 'void Anna(int, long long int, int, int*)':
Anna.cpp:77:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  while(s.size() < N) {
        ~~~~~~~~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...