Submission #1239027

#TimeUsernameProblemLanguageResultExecution timeMemory
1239027a4n_송신탑 (IOI22_towers)C++20
14 / 100
254 ms1828 KiB
#include <bits/stdc++.h> #include "towers.h" using namespace std; typedef long long ll; typedef long double ld; typedef pair<int,int> pii; typedef pair<ll,ll> pll; #define F first #define S second #define endl '\n' #define Mp make_pair #define pb push_back #define pf push_front #define size(x) (ll)x.size() #define all(x) x.begin(), x.end() #define fuck(x) cout<<"("<<#x<<" : "<<x<<")\n" const int N = 3e5 + 100, lg = 18; const ll Mod = 1e9 + 7; const ll inf = 1e18 + 10; ll MOD(ll a, ll mod=Mod) { a%=mod; (a<0)&&(a+=mod); return a; } ll poww(ll a, ll b, ll mod=Mod) { ll res = 1; while(b > 0) { if(b%2 == 1) res = MOD(res * a, mod); b /= 2; a = MOD(a * a, mod); } return res; } int t, n, h[N], pr[N]; void init(int _N, vector<int> _H) { n = _N; for(int i=1; i<=n; i++) { h[i] = _H[i - 1]; } for(int i=2; i<n; i++) { if(h[i] < h[i-1] && h[i] < h[i + 1]) pr[i] ++; pr[i] += pr[i-1]; } } int max_towers(int l, int r, int d) { l++, r++; if(r == l) return 1; return pr[r - 1] - pr[l] + (h[l] < h[l + 1]) + (h[r] < h[r - 1]); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...