結果
問題 |
No.3282 Photos and Friends
|
ユーザー |
![]() |
提出日時 | 2025-09-26 22:13:20 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 570 ms / 2,000 ms |
コード長 | 811 bytes |
コンパイル時間 | 2,801 ms |
コンパイル使用メモリ | 278,680 KB |
実行使用メモリ | 7,808 KB |
最終ジャッジ日時 | 2025-09-26 22:13:33 |
合計ジャッジ時間 | 11,696 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 50 |
ソースコード
#include<bits/stdc++.h> using namespace std; int main(){ using ll=long long; int n; ll p,q; cin>>n>>p>>q; ll sump=0,sumq=0; ll sum=0; vector<ll> ansa(n),ansb(n),rest(n); bool ok=true; for (int i=0;i<n;i++){ ll x,a,b; cin>>x>>a>>b; if (a+b<x) ok=false; a=min(a,x); b=min(b,x); sump+=x-b; ansa[i]+=x-b; sumq+=x-a; ansb[i]+=x-a; x-=x-b+x-a; sum+=x; rest[i]=x; } p-=sump; q-=sumq; if (!ok||p<0||q<0||p+q<sum) cout<<"No\n"; else{ cout<<"Yes\n"; for (int i=0;i<n;i++){ if (p){ ll c=min(p,rest[i]); ansa[i]+=c; rest[i]-=c; p-=c; } if (q){ ll c=min(q,rest[i]); ansb[i]+=c; rest[i]-=c; q-=c; } cout<<ansa[i]<<" "<<ansb[i]<<endl; } } }