結果
問題 |
No.2684 折々の色
|
ユーザー |
![]() |
提出日時 | 2024-03-20 21:38:52 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 1,153 ms / 2,000 ms |
コード長 | 1,089 bytes |
コンパイル時間 | 4,632 ms |
コンパイル使用メモリ | 261,800 KB |
最終ジャッジ日時 | 2025-02-20 08:54:13 |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 56 |
ソースコード
#include <stdio.h> #include <atcoder/all> #include <bits/stdc++.h> using namespace std; using namespace atcoder; using mint = modint998244353; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf32 1000000001 #define Inf64 4000000000000000001 int main(){ ios::sync_with_stdio(false); std::cin.tie(nullptr); int n,m; cin>>n>>m; vector<long long> x(m); rep(i,m){ cin>>x[i]; x[i] *= 10000; } vector c(n,vector<long long>(m)); vector<long long> t(n); vector<vector<vector<long long>>> S(101); rep(i,n){ rep(j,m)cin>>c[i][j]; cin>>t[i]; S[t[i]].push_back(c[i]); } rep(i,101)sort(S[i].begin(),S[i].end()); rep(i,n){ for(int j=1;j<=100;j++){ vector<long long> goal(m,-1); rep(k,m){ long long cur = x[k]; cur += c[i][k] * t[i] * j; cur -= c[i][k] * t[i] * 100; if(cur % (100 * j) != 0)break; cur /= 100 * j; goal[k] = cur; } if(goal[m-1]==-1)continue; if(goal == c[i])continue; if(binary_search(S[j].begin(),S[j].end(),goal)){ cout<<"Yes"<<endl; return 0; } } } cout<<"No"<<endl; return 0; }