Submission #3594521
Source Code Expand
#pragma GCC optimize ("O3")
#pragma GCC optimize ("unroll-loops")
#pragma target("sse,sse2,sse3,ssse3,sse4.1,sse4.2,sse4a,sse5,avx,avx2,avx512")
#include <stdio.h>
#include <cstdlib>
#include <iostream>
#include <vector>
#include <random>
#include <chrono>
typedef int ll;
typedef std::vector<ll> vl;
typedef std::vector<vl> vvl;
char getChar() {
static char buffer[1 << 20];
static int size = 0;
static int pos = 0;
if (pos == size) {
size = (int)fread(buffer, 1, 1 << 20, stdin), pos = 0;
}
return pos == size ? -1 : buffer[pos++];
}
int read() {
char c = '?';
while (!(c == '-' || ('0' <= c && c <= '9'))) { c = getChar(); }
bool neg = false;
if (c == '-') { neg = true; c = getChar(); }
int ret = 0;
while ('0' <= c && c <= '9') { (ret *= 10) += (c - '0'); c = getChar(); }
return neg ? -ret : ret;
}
const int mod = (int)1e9+7;
int add(int a, int b) {
return (a += b) >= mod ? a - mod : a;
}
int mul(int a, int b) {
return int(1LL * a * b % mod);
}
void rand_mat(vvl& m, int n) {
uint64_t seed = std::chrono::high_resolution_clock::now().time_since_epoch().count();
seed ^= (uint64_t)(new uint64_t);
std::mt19937 gen(seed);
std::uniform_int_distribution<int> dist(0, mod-1);
m.assign(n, vl(n, 0));
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
m[i][j] = dist(gen);
}
}
}
void input(int& n, vvl& A, vvl& B, vvl& C) {
n = read();
A.assign(n, vl(n, 0));
C = B = A;
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
A[i][j] = read();
}
}
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
B[j][i] = read();
}
}
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
C[i][j] = read();
}
}
}
int dot(int n, const vl& a, const vl& b) {
int res = 0; const int gsize = 16;
for (int g = 0; g + gsize <= n; g += gsize) {
unsigned long long tmp = 0;
int i = g;
tmp = tmp + 1LL*a[i+0]*b[i+0] + 1LL*a[i+1]*b[i+1] + 1LL*a[i+2]*b[i+2] + 1LL*a[i+3]*b[i+3];
tmp = tmp + 1LL*a[i+4]*b[i+4] + 1LL*a[i+5]*b[i+5] + 1LL*a[i+6]*b[i+6] + 1LL*a[i+7]*b[i+7];
tmp = tmp + 1LL*a[i+8]*b[i+8] + 1LL*a[i+9]*b[i+9] + 1LL*a[i+10]*b[i+10] + 1LL*a[i+11]*b[i+11];
tmp = tmp + 1LL*a[i+12]*b[i+12] + 1LL*a[i+13]*b[i+13] + 1LL*a[i+14]*b[i+14] + 1LL*a[i+15]*b[i+15];
res = int((res + tmp) % mod);
}
for (int i = n / gsize * gsize; i < n; ++i) {
res = add(res, mul(a[i], b[i]));
}
return res;
}
void mult(int n, const vvl& A, const vvl& B, vvl& R) {
R.assign(n, vl(n, 0));
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
R[i][j] = dot(n, A[i], B[j]);
}
}
}
bool check(const int n, const vvl& A, const vvl& B) {
for (int i = 0; i < n; ++i) {
if (A[i] != B[i]) {
return false;
}
}
return true;
}
void gen(int n, vvl& A, vvl& B, vvl& C) {
rand_mat(A, n), rand_mat(B, n), mult(n, A, B, C);
}
void test(int n) {
vvl A, B, C;
gen(n, A, B, C);
//std::exit(0);
}
int main() {
test(1000);
int a, b; std::cin >> a >> b;
for (int c = 1; c <= 3; ++c) {
if (a * b * c % 2 == 1) {
std::cout << "Yes"; return 0;
}
}
std::cout << "No"; return 0;
return 0;
}
Submission Info
Submission Time |
|
Task |
A - ABC333 |
User |
dmkozyrev |
Language |
C++14 (Clang 3.8.0) |
Score |
100 |
Code Size |
3574 Byte |
Status |
AC |
Exec Time |
733 ms |
Memory |
12032 KB |
Judge Result
Set Name |
All |
Sample |
Score / Max Score |
100 / 100 |
0 / 0 |
Status |
|
|
Set Name |
Test Cases |
All |
sample_01, sample_02, sample_03, testcase0, testcase1, testcase2, testcase3, testcase4, testcase5 |
Sample |
sample_01, sample_02, sample_03 |
Case Name |
Status |
Exec Time |
Memory |
sample_01 |
AC |
731 ms |
12032 KB |
sample_02 |
AC |
732 ms |
12032 KB |
sample_03 |
AC |
732 ms |
12032 KB |
testcase0 |
AC |
732 ms |
12032 KB |
testcase1 |
AC |
733 ms |
12032 KB |
testcase2 |
AC |
733 ms |
12032 KB |
testcase3 |
AC |
733 ms |
12032 KB |
testcase4 |
AC |
732 ms |
12032 KB |
testcase5 |
AC |
732 ms |
12032 KB |