제출 #936555

#제출 시각아이디문제언어결과실행 시간메모리
936555penguin133Advertisement 2 (JOI23_ho_t2)C++17
10 / 100
128 ms29012 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pi pair<int, int> #define pii pair<int, pi> #define fi first #define se second #ifdef _WIN32 #define getchar_unlocked _getchar_nolock #endif mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); int dp[500005], dp2[500005], n; pi A[500005]; void solve(){ cin >> n; for(int i = 1; i <= n; i++)cin >> A[i].fi >> A[i].se; sort(A + 1, A + n + 1); stack <int> s; for(int i = 1; i <= n; i++){ while(!s.empty() && A[s.top()].fi - A[s.top()].se >= A[i].fi - A[i].se)s.pop(); dp[i] = (s.empty() ? 0 : dp[s.top()]) + 1; s.push(i); } while(!s.empty())s.pop(); for(int i = n; i >= 1; i--){ while(!s.empty() && A[s.top()].fi + A[s.top()].se <= A[i].fi + A[i].se)s.pop(); dp2[i] = (s.empty() ? 0 : dp2[s.top()]) + 1; s.push(i); } int ans = 1e18, mn = 1e18; for(int i = 1; i <= n; i++){ ans = min({ans, dp[i] + mn, dp[i] + dp2[i] - 1}); mn = min(mn, dp2[i]); } cout << ans; } main(){ ios::sync_with_stdio(0);cin.tie(0); int tc = 1; //cin >> tc; for(int tc1=1;tc1<=tc;tc1++){ // cout << "Case #" << tc1 << ": "; solve(); } }

컴파일 시 표준 에러 (stderr) 메시지

Main.cpp:41:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   41 | main(){
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...