Submission #1135887

#TimeUsernameProblemLanguageResultExecution timeMemory
1135887noodles0428Data Transfer (IOI19_transfer)C++20
36 / 100
6 ms584 KiB
#include <bits/stdc++.h> using namespace std; #define pp pair <int, int> #define fi first #define se second #define yes cout << "YES\n" #define no cout << "NO\n" const int N = 1e6 + 9; int n, a[N]; vector <int> get_attachment (vector <int> source){ vector <vector <int>> board (8, vector <int> (8, 0)); int i = 0, j = 0, idx = 0; while (idx < source.size ()){ board[i][j] = source[idx]; j++; if (j >= 8){ i++; j = 0; } idx++; } vector <int> result; for (int i = 0; i < 8; i++){ int cc = 0; for (int j = 0; j < 8; j++) cc += board[i][j]; result.push_back (cc & 1); } for (int j = 0; j < 8; j++){ int cc = 0; for (int i = 0; i < 8; i++) cc += board[i][j]; result.push_back (cc & 1); } return result; } vector <int> retrieve (vector <int> data){ vector <int> result; vector <int> state; for (int i = 0; i + 16 < data.size (); i++) result.push_back (data[i]); for (int i = data.size () - 16; i < data.size (); i++) state.push_back (data[i]); vector <vector <int>> board (8, vector <int> (8, 0)); int i = 0, j = 0, idx = 0; while (idx < result.size ()){ board[i][j] = result[idx]; j++; if (j >= 8){ i++; j = 0; } idx++; } int num_wrong = 0; int idx1 = 0, idx2 = 0; for (int i = 0; i < 8; i++){ int cc = 0; for (int j = 0; j < 8; j++) cc += board[i][j]; if (state[i] != (cc & 1)){ num_wrong++; idx1 = i; } } for (int j = 0; j < 8; j++){ int cc = 0; for (int i = 0; i < 8; i++) cc += board[i][j]; if (state[j + 8] != (cc & 1)){ num_wrong++; idx2 = j; } } if (num_wrong <= 1) return result; result[idx1 * 8 + idx2] ^= 1; return result; } // love you, noodles0428 <333 // voi25 3rd++
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...