結果
問題 |
No.2684 折々の色
|
ユーザー |
|
提出日時 | 2024-03-20 23:12:20 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,504 bytes |
コンパイル時間 | 884 ms |
コンパイル使用メモリ | 89,108 KB |
最終ジャッジ日時 | 2025-02-20 10:03:58 |
ジャッジサーバーID (参考情報) |
judge4 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 53 WA * 3 |
ソースコード
#include<iostream> #include<algorithm> #include<vector> #include<set> using namespace std; using ll=long long; #define all(v) v.begin(),v.end() #define rall(v) v.rbegin(),v.rend() template<class T> bool chmax(T &a, T b){if (a < b){a = b;return true;} else return false;} template<class T> bool chmin(T &a, T b){if (a > b){a = b;return true;} else return false;} int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int N,M; cin>>N>>M; vector<ll>X(M); for(int i=0;i<M;i++)cin>>X[i]; vector C(N,vector<ll>(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]; for(int j=0;j<M;j++){ C[i][j]*=T[i]; } } multiset<vector<ll>>se; for(int i=0;i<N;i++)se.insert(C[i]); for(int i=0;i<N;i++){ if(T[i]==100){ if(X==C[i]){ cout<<"Yes\n"; return 0; } se.erase(se.find(C[i])); } } for(int i=0;i<N;i++){ if(T[i]==100)continue; vector<ll>W(M); bool ok=true; for(int j=0;j<M;j++){ if((10000*X[j]-100*C[i][j])%(100-T[i])!=0){ ok=false; break; } W[j]=(10000*X[j]-100*C[i][j])/(100-T[i]); } se.erase(se.find(C[i])); if(ok&&se.count(W)){ cout<<"Yes\n"; return 0; } se.insert(C[i]); } cout<<"No\n"; }