This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define all(v) ((v).begin(),(v).end())
#define ll long long
#define F first
#define S second
const ll mod = 1e9 + 7;
const ll mxN = 1e5 + 2;
using namespace std;
vector<int> coin_flips(vector<int> b, int c) {
vector<int> flips;
int num = 0;
for(int i = 6; i>=0;i--){
if(num + (1 << i) <= c){
num += (1 << i);
if(!b[i]) flips.push_back(i);
}else{
if(b[i]) flips.push_back(i);
}
}
return flips;
}
int find_coin(vector<int> b) {
int num = 0;
for(int i = 0;i <= 6;i++){
num += (b[i] << i);
}
return num;
}
//
// static string run_test() {
// int c;
// cin >> c;
// vector<int> b(64);
// for (int i = 0; i < 8; i++) {
// string s;
// cin >> s;
// for (int j = 0; j < 8; j++) {
// b[i * 8 + j] = int(s[j] - '0');
// }
// }
// vector<int> flips = coin_flips(b, c);
// if ((int)flips.size() == 0) {
// return "0 turn overs";
// }
// for (int i = 0; i < (int)flips.size(); i++) {
// if (flips[i] < 0 || flips[i] > 63) {
// return "cell number out of range";
// }
// b[flips[i]] = 1 - b[flips[i]];
// }
// int coin = find_coin(b);
// if (coin != c) {
// return "wrong coin";
// }
// return "ok";
// }
//
// int main() {
// int tests;
// cin >> tests;
// for (int t = 1; t <= tests; t++) {
// string result = run_test();
// cout << "test #" << t << ": " << result << endl;
// }
// return 0;
// }
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |