結果
問題 | No.2684 折々の色 |
ユーザー |
![]() |
提出日時 | 2024-04-26 15:36:47 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
RE
|
実行時間 | - |
コード長 | 1,758 bytes |
コンパイル時間 | 1,126 ms |
コンパイル使用メモリ | 65,144 KB |
実行使用メモリ | 33,672 KB |
最終ジャッジ日時 | 2024-11-14 04:18:49 |
合計ジャッジ時間 | 24,070 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 34 RE * 22 |
ソースコード
/* -*- coding: utf-8 -*-** 2684.cc: No.2684 折々の色 - yukicoder*/#include<cstdio>#include<vector>#include<algorithm>#include<utility>using namespace std;/* constant */const int MAX_N = 200000;const int MAX_M = 10;/* typedef */typedef vector<int> vi;typedef pair<vi,int> pvii;/* global variables */vi cvs[MAX_N];int ts[MAX_N];pvii ps[MAX_N];/* subroutines */void readv(int m, vi &v) {v.resize(m);for (int i = 0; i < m; i++) scanf("%d", &v[i]);}void subv(vi &a, vi &b) {for (int i = 0; i < a.size(); i++) a[i] -= b[i];}void mulv(vi &a, int b) { for (auto &u: a) u *= b; }bool divv(vi &a, int b) {for (auto &u: a) {if (u % b != 0) return false;u /= b;}return true;}void printv(vi &a) { for (auto &u: a) printf(" %d", u); putchar('\n'); }/* main */int main() {int n, m;scanf("%d%d", &n, &m);// ti/100*cik+(1-ti/100)*tj/100*cjk = xk// -> ti*cik+(1-ti/100)*tj*cjk = 100*xk// let ti*cik=>tcik,// -> tcik+(1-ti/100)tcjk = 100*xk// -> (1-ti/100)tcjk=100*xk-tcik// -> tcjk = (100*xk-tcik)*100/(100-ti)vi xv;readv(m, xv);mulv(xv, 100);for (int i = 0; i < n; i++) {readv(m, cvs[i]);scanf("%d", ts + i);mulv(cvs[i], ts[i]);ps[i] = {cvs[i], ts[i]};}sort(ps, ps + n);for (int i = 0; i < n; i++) {cvs[i] = ps[i].first, ts[i] = ps[i].second;//printv(cvs[i]);}for (int i = 0; i < n; i++) {vi fv(xv.begin(), xv.end());subv(fv, cvs[i]);mulv(fv, 100);if (divv(fv, 100 - ts[i])) {//printf(" i=%d:", i); printv(fv);int k = lower_bound(cvs, cvs + n, fv) - cvs;if (k < n && i != k && fv == cvs[k]) {puts("Yes"); return 0;}}}puts("No");return 0;}