結果
問題 |
No.2684 折々の色
|
ユーザー |
![]() |
提出日時 | 2024-03-21 01:07:12 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
RE
|
実行時間 | - |
コード長 | 2,130 bytes |
コンパイル時間 | 2,431 ms |
コンパイル使用メモリ | 207,028 KB |
最終ジャッジ日時 | 2025-02-20 10:23:28 |
ジャッジサーバーID (参考情報) |
judge3 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 49 RE * 7 |
ソースコード
#include <bits/stdc++.h> using namespace std; void fast_io() { ios::sync_with_stdio(false); std::cin.tie(nullptr); } int main() { fast_io(); int n, m; cin >> n >> m; vector<int> x(m); for (int i = 0; i < m; i++) { cin >> x[i]; } vector<vector<int>> c(n, vector<int>(m)); vector<int> t(n); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cin >> c[i][j]; } cin >> t[i]; } set<array<pair<int, int>, 10>> st; for (int i = 0; i < n; i++) { array<pair<int, int>, 10> need; for (int j = 0; j < m; j++) { int a = 100 * x[j] - t[i] * c[i][j]; int b = 100 - t[i]; int g = gcd(a, b); if (a < 0) { a = -a; b = -b; } need[j] = {a / g, b / g}; } if (st.count(need)) { cout << "Yes\n"; return 0; } array<pair<int, int>, 10> data; for (int j = 0; j < m; j++) { int a = t[i] * c[i][j]; int b = 100; int g = gcd(a, b); if (a < 0) { a = -a; b = -b; } data[j] = {a / g, b / g}; } st.insert(data); } st.clear(); for (int i = n - 1; i >= 0; i--) { array<pair<int, int>, 10> need; for (int j = 0; j < m; j++) { int a = 100 * x[j] - t[i] * c[i][j]; int b = 100 - t[i]; int g = gcd(a, b); if (a < 0) { a = -a; b = -b; } need[j] = {a / g, b / g}; } if (st.count(need)) { cout << "Yes\n"; return 0; } array<pair<int, int>, 10> data; for (int j = 0; j < m; j++) { int a = t[i] * c[i][j]; int b = 100; int g = gcd(a, b); if (a < 0) { a = -a; b = -b; } data[j] = {a / g, b / g}; } st.insert(data); } cout << "No\n"; }