結果
問題 | No.1935 Water Simulation |
ユーザー | monnu |
提出日時 | 2022-05-13 22:12:47 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 992 bytes |
コンパイル時間 | 3,753 ms |
コンパイル使用メモリ | 229,640 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-07-22 04:35:32 |
合計ジャッジ時間 | 4,562 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 29 |
ソースコード
#include <bits/stdc++.h> using namespace std; #include <atcoder/all> using namespace atcoder; using ll=long long; using Graph=vector<vector<int>>; #define INF 1000000000000000000 #define MOD 998244353 #define MAX 1000000 void transfer(int &from,int &to,int V2){ if(from+to<=V2){ to=from+to; from=0; }else{ int x=V2-to; from-=x; to+=x; } } int main(){ vector<int> V(4); for(int i=0;i<4;i++){ cin>>V[i]; } vector<int> storage(4,0); storage[0]=V[0]; ll N; cin>>N; int k=0; for(int i=0;i<4;i++){ if(V[i]<V[k]){ k=i; } } int i=0; int cnt=0; while(N>0&&cnt<400){ transfer(storage[i%4],storage[(i+1)%4],V[(i+1)%4]); N--; i++; cnt++; } while(N>0&&i%4!=k){ transfer(storage[i%4],storage[(i+1)%4],V[(i+1)%4]); N--; i++; } N%=4; while(N>0){ transfer(storage[i%4],storage[(i+1)%4],V[(i+1)%4]); N--; i++; } for(int i=0;i<4;i++){ cout<<storage[i]<<' '; } cout<<'\n'; }