# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1212054 | doublepun | Coins (IOI17_coins) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
#define endl "\n"
using namespace std;
string contoBin(int n)
{
ios::sync_with_stdio(false);
cin.tie(0);
string ans = "";
for (int r = 0;r < 6;r++)
{
stringstream ss;
string pre;
ss << (n%2);
ss >> pre;
ans+=pre;
n = floor(n/2);
}
reverse(ans.begin(),ans.end());
return ans;
}
int[] coin_flips(int[] b, int c)
{
string code = contoBin(c);
for (int i = 0;i < 6;i++)
{
stringstream ss2;
int temp;
ss2 << code[i];
ss2 >> temp;
if (b[i] != temp)
{
b[i] = temp;
}
}
return b;
}
int find_coin(int[] b)
{
return ((b[0]*pow(2,5) + b[1]*pow(2,4) + b[2]*pow(2,3) + b[3]*pow(2,2) + b[4]*2 + b[5]));
}
int main()
{
int T;
cin >> T;
while (T--)
{
int curse;
cin >> curse;
int broad[64];
for (int i = 0;i < 64;i++)
{
int state;
cin >> state;
broad[i] = state;
}
cout << find_coin(coin_flips(broad,curse)) << endl;
}
}