結果
問題 | No.1650 Moving Coins |
ユーザー |
![]() |
提出日時 | 2021-08-20 22:59:12 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,711 bytes |
コンパイル時間 | 2,233 ms |
コンパイル使用メモリ | 191,256 KB |
実行使用メモリ | 13,640 KB |
最終ジャッジ日時 | 2024-10-14 06:07:00 |
合計ジャッジ時間 | 6,468 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | TLE * 1 -- * 23 |
コンパイルメッセージ
main.cpp: In function 'int main()': main.cpp:33:10: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17' [-Wc++17-extensions] 33 | auto [sub,i]=que.front();que.pop(); | ^
ソースコード
#include <bits/stdc++.h>using namespace std;#define rep(i,n) for(int i=0;i<n;++i)#define rep1(i,n) for(int i=1;i<=n;++i)#define debug(output) if(debugFlag)cout<<#output<<"= "<<output<<endlusing lint = long long;typedef pair<int,int> P;const bool debugFlag=true;const lint linf=1e18+7;const lint inf=1e9+7;const int MOD=1000000007;signed main(){int n;cin>>n;vector<int> a(n),b(n);rep(i,n)cin>>a[i];rep(i,n)cin>>b[i];vector<pair<int,char>> res;set<int> memo;rep(i,n)memo.insert(a[i]);queue<P> que;vector<P> que2;rep(i,n){if(a[i]!=b[i]){que2.push_back({b[i]-a[i],i});}}sort(que2.begin(),que2.end());for(auto& v:que2)que.push(v);memo.insert(inf);memo.insert(-inf);while(!que.empty()){auto [sub,i]=que.front();que.pop();if(sub<0){auto it=memo.lower_bound(b[i]);if(*it==a[i]){rep(x,-sub)res.push_back({i+1,'L'});a[i]=b[i];memo.erase(it);memo.insert(b[i]);}else{it=memo.find(a[i]);--it;rep(x,a[i]-(*it+1))res.push_back({i+1,'L'});a[i]=*it+1;sub=b[i]-a[i];if(sub==0)continue;que.push({sub,i});}}else{auto it=memo.upper_bound(a[i]);if(*it>b[i]){rep(x,sub)res.push_back({i+1,'R'});memo.erase(a[i]);memo.insert(b[i]);}else{rep(x,*it-1-a[i])res.push_back({i+1,'R'});memo.erase(a[i]);a[i]=*it-1;memo.insert(a[i]);if(sub==0)continue;que.push({b[i]-a[i],i});}}}cout<<res.size()<<"\n";for(auto& val:res){cout<<val.first<<" "<<val.second<<"\n";}return 0;}