結果
問題 | No.871 かえるのうた |
ユーザー |
|
提出日時 | 2019-08-30 23:26:48 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 32 ms / 2,000 ms |
コード長 | 2,444 bytes |
コンパイル時間 | 1,398 ms |
コンパイル使用メモリ | 168,304 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-30 10:50:54 |
合計ジャッジ時間 | 3,250 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 49 |
ソースコード
// template version 1.12using namespace std;#include <iostream>#include <bits/stdc++.h>// varibable settings#define infile "../test/sample-1.in"#define int long long //{{{const int INF=1e18;const int MOD=1e9+7; //}}}// define basic macro {{{#define _overload3(_1,_2,_3,name,...) name#define _rep(i,n) repi(i,0,n)#define repi(i,a,b) for(int i=(int)(a);i<(int)(b);++i)#define rep(...) _overload3(__VA_ARGS__,repi,_rep,)(__VA_ARGS__)#define _rrep(i,n) rrepi(i,0,n)#define rrepi(i,a,b) for(int i=(int)((b)-1);i>=(int)(a);--i)#define rrep(...) _overload3(__VA_ARGS__,rrepi,_rrep,)(__VA_ARGS__)#define each(i,a) for (auto&& i : a)#define all(x) (x).begin(),(x).end()#define sz(x) ((int)(x).size())#define pb(a) push_back(a)#define mp(a, b) make_pair(a, b)#define uni(x) sort(all(x));x.erase(unique(all(x)),x.end())#define ub upper_bound#define lb lower_bound#define posl(A, x) (lower_bound(all(A), x)-A.begin())#define posu(A, x) (upper_bound(all(A),x)-A.begin())template<class T> inline void chmax(T &a, const T &b) { if((a) < (b)) (a) = (b); }template<class T> inline void chmin(T &a, const T &b) { if((a) > (b)) (a) = (b); }typedef long long ll;typedef vector<int> vi;typedef vector<vi> vvi;typedef long double ld;typedef pair<int,int> pii;typedef tuple<int,int,int> iii;template<typename T> using PQ = priority_queue<T, vector<T>, greater<T>>;struct Fast { Fast(){ std::cin.tie(0); ios::sync_with_stdio(false); } } fast;#if defined(PCM) || defined(LOCAL)#include "lib/dump.hpp"#else#define dump(...) 42#define dump_1d(...) 42#define dump_2d(...) 42#endif//}}}int solve(){int n,k;cin>>n>>k;k--;vi x(n),a(n);rep(i,n)cin>>x[i];rep(i,n)cin>>a[i];int ans=1;{int r=k;int l=k;int R = x[k]+a[k];int L = x[k]-a[k];while(true){bool flag=false;if (r<n-1){if (x[r+1]<=R){ans++;r++;dump(r);chmax(R, x[r]+a[r]);chmin(L, x[r]-a[r]);flag=true;}}if (l>0){if (L<=x[l-1]){ans++;l--;dump(r);chmax(R, x[l]+a[l]);chmin(L, x[l]-a[l]);flag=true;}}if (!flag) break;}}cout << ans << endl;return 0;}signed main() { //{{{#ifdef INPUT_FROM_FILEstd::ifstream in(infile);std::cin.rdbuf(in.rdbuf());#endifsolve();return 0;} //}}}