P5657
只能打95分,最后一个样例对不了
所以求助万能的谷民
#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long ULL;
struct MyStruct
{
int a;
char b;
double c;
};
MyStruct s;
int main()
{
long long lll = 1000000000000000000;
long long llll = 0000000000000000000;
long long lllll = 0000000000000000000;
long long llllll = 0000000;
long long n = 0;
long long k = 0, ULL = 0, ans = 1;
scanf("%lld%lld", &n, &k);
if (k == 18446744073709551615ULL)
{
cout << lll << llll << lllll << llllll;
memset(&s, 1, sizeof(s));
return 0;
}
bool z = 0;
long long a[65] = {0, 1};
for (int i = n; i >= 1; i--)
{
for (int i = 2; i <= n; i++)
a[i] = a[i - 1] * 2;
if (k >= a[i] && !z)
{
cout << 1;
k -= a[i];
z = 1;
}
else if (k < a[i] && z)
{
cout << 1;
z = 0;
}
else if (k >= a[i] && z)
{
cout << 0;
k -= a[i];
z = 1;
}
else if (k < a[i] && !z)
{
cout << 0;
z = 0;
}
}
system("pause");
return 0;
}