제출 #97734

#제출 시각아이디문제언어결과실행 시간메모리
97734silxikysBroken Device (JOI17_broken_device)C++14
0 / 100
54 ms3408 KiB
#include "Annalib.h" #include <vector> #include <string> void Anna(int N, long long X, int K, int P[]) { std::vector<int> blocked(N,-1); std::string ans; for (int i = 0; i < K; i++) { blocked[P[i]] = 0; } int pos = 0; for (int i = 0; i < N; i += 3) { int cnt = (blocked[i] == 0) + (blocked[i+1] == 0) + (blocked[i+2] == 0); if (cnt > 1 || pos > 60) { ans += "000"; } else if (cnt == 1) { if (blocked[i] == 0) { if (!(X & (1LL<<pos))) { ans += "001"; } else { ans += "010"; } pos++; } else if (ans[i+1] == 0) { if (!(X & (1LL<<pos))) { ans += "001"; pos++; } else { pos++; if (!(X & (1LL<<pos))) { ans += "100"; } else { ans += "101"; } pos++; } } else { if (!(X & (1LL<<pos))) { ans += "110"; } else { ans += "010"; } pos++; } } else { bool a = X & (1<<pos); bool b = X & (1<<(pos+1)); int r = 2*a+b; if (r == 0) { ans += "011"; } else if (r == 1) { ans += "111"; } else if (r == 2) { ans += "100"; } else { ans += "101"; } pos += 2; } } for (int i = 0; i < N; i++) { Set(i,ans[i]=='0'?0:1); } }
#include "Brunolib.h" #include <vector> #include <string> long long Bruno(int N, int A[]) { std::string ans; for (int i = 0; i < N; i += 3) { int r = A[i] * 4 + A[i+1] * 2 + A[i+2]; if (r == 0) continue; else if (r == 1) ans += "0"; else if (r == 2) ans += "1"; else if (r == 3) ans += "00"; else if (r == 4) ans += "10"; else if (r == 5) ans += "11"; else if (r == 6) ans += "0"; else if (r == 7) ans += "01"; } long long res = 0; long long mult = 1; for (int i = 0; i < ans.size(); i++) { if (ans[i] == '1') res += mult; mult *= 2; } return res; }

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

Bruno.cpp: In function 'long long int Bruno(int, int*)':
Bruno.cpp:20:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < ans.size(); i++) {
                     ~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...