fork(3) download
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <cmath>
  4. using namespace std;
  5.  
  6. string dec2bin(int l){
  7. string wynik = "";
  8. while(l != 0){
  9. if(l % 2 == 1){
  10. wynik += '1';
  11. } else {
  12. wynik += '0';
  13. }
  14. l /= 2;
  15. }
  16. return wynik;
  17. }
  18.  
  19. int main() {
  20. int t;
  21. cin >> t;
  22. while(t--) {
  23. int l, b;
  24. cin >> l >> b;
  25. bool ward = 0;
  26. string bin = dec2bin(abs(l));
  27. if(l >= 0){
  28. ward = 1;
  29. } else {
  30. ward = 0;
  31. }
  32. if((bin.length() >= b && ward == 1) || (bin.length() > b && ward == 0)){
  33. cout << "niewykonalne\n";
  34. } else {
  35. for(int i = bin.length(); i < b; i++){
  36. bin += '0';
  37. }
  38. reverse(bin.begin(), bin.end());
  39. if(l >= 0){
  40. cout << bin << '\n';
  41. } else {
  42. l = -l;
  43. for(int i = 0; i < bin.length(); i++){
  44. if(bin[i] == '0'){
  45. bin[i] = '1';
  46. } else {
  47. bin[i] = '0';
  48. }
  49. }
  50. reverse(bin.begin(), bin.end());
  51. for(int i = 0; i < bin.length(); i++){
  52. if(bin[i] == '0'){
  53. bin[i] = '1';
  54. break;
  55. } else {
  56. bin[i] = '0';
  57. }
  58. }
  59. reverse(bin.begin(), bin.end());
  60. cout << bin << '\n';
  61. }
  62. }
  63. }
  64. }
Success #stdin #stdout 0.01s 5552KB
stdin
2
100 8
-100 8
stdout
01100100
10011100