Submission #420318

#TimeUsernameProblemLanguageResultExecution timeMemory
420318_fractalSafety (NOI18_safety)C++14
0 / 100
32 ms5960 KiB
/** * author: fractal * timus: 288481RF **/ #include <bits/stdc++.h> using namespace std; #define F first #define S second #define mp make_pair #define pb push_back #define pf push_front #define ppb pop_back #define ppf pop_front #define speed ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0) #define sz(x) (int)x.size() #define len(x) (int)strlen(x) #define all(x) x.begin(), x.end() #define debug cerr << "OK\n"; #define ub upper_bound #define lb lower_bound #define nl printf("\n"); #define clbuff fflush(stdin); #define make_unique(x) sort(all(x)), x.erase(unique(all(x)), x.end()) mt19937 bruh(chrono::steady_clock::now().time_since_epoch().count()); mt19937_64 rofl(chrono::steady_clock::now().time_since_epoch().count()); typedef long long ll; typedef long double ld; typedef unsigned long long ull; typedef pair<int, int> pii; typedef pair<ll, ll> pll; typedef vector<int> vi; typedef vector<ll> vll; typedef vector<pii> vpii; typedef vector<pll> vpll; typedef set<int> si; typedef set<ll> sll; typedef set<pii> spii; typedef set<pll> spll; typedef multiset <int> msi; typedef multiset <ll> msll; typedef map <int, int> mi; typedef map <ll, ll> mll; const int N = 2e5 + 2; const int M = 1e5; const int mod = 0; const int inf = 2e9 + 3; const ll INF = 1e11; const ld pi2 = 2.0 * 3.141592; const ld pi = 3.141592; const ld eps = 1e-12; const int dx[4] = {1, -1, 0, 0}; const int dy[4] = {0, 0, -1, 1}; void files(string s = "main") { #ifndef PC freopen((s + ".in").c_str(), "r", stdin); freopen((s + ".out").c_str(), "w", stdout); #endif } int add(int a, int b) { if (a + b < 0) return a + b + mod; if (a + b >= mod) return a + b - mod; return a + b; } int mul(int a, int b) { return a * 1LL * b % mod; } int binpow(int a, int n) { int ret = 1; while (n) { if (n & 1) ret = mul(ret, a); a = mul(a, a); n >>= 1; } return ret; } ll ans = 0, n, h, a[N]; int main() { speed; cin >> n >> h; for (int i = 1; i <= n; ++i) cin >> a[i]; priority_queue<ll, vll, less<ll>> L; priority_queue<ll, vll, greater<ll>> R; ll Lh = 0, Rh = 0; L.push(a[1]); R.push(a[1]); for (int i = 2; i <= n; ++i) { Lh += h; Rh += h; if (a[i] < L.top() - Lh) { ans += L.top() - a[i] - Lh; R.push(L.top() - Lh - Rh); L.push(a[i] + Lh); L.push(a[i] + Lh); } else if (a[i] > R.top() + Rh) { ans += a[i] - R.top() - Rh; L.push(R.top() + Lh + Rh); R.push(a[i] - Rh); R.push(a[i] - Rh); } else { L.push(a[i] + Lh); R.push(a[i] - Rh); } } cout << ans << '\n'; }

Compilation message (stderr)

safety.cpp: In function 'int mul(int, int)':
safety.cpp:74:21: warning: division by zero [-Wdiv-by-zero]
   74 |  return a * 1LL * b % mod;
      |         ~~~~~~~~~~~~^~~~~
safety.cpp: In function 'void files(std::string)':
safety.cpp:62:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   62 |   freopen((s + ".in").c_str(), "r", stdin);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
safety.cpp:63:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   63 |   freopen((s + ".out").c_str(), "w", stdout);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...