제출 #1082008

#제출 시각아이디문제언어결과실행 시간메모리
1082008lamlamlamArt Exhibition (JOI18_art)C++17
100 / 100
159 ms36944 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define endl '\n' const int MN = 5e5+5; int n; __int128 pre[MN],suf[MN],ans,tmp; pair<int,int> a[MN]; void printt(__int128 x) { string res = ""; if(x==0) { cout << 0; return; } bool am = false; if(x<0) am = true, x = -x; while(x!=0){ res += '0' + x%10; x /= 10; } if(am) cout << '-'; for(int i=res.size()-1; i>=0; i--) cout << res[i]; } signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); #define task "JOI18_ART" if(fopen(task".inp","r")){ freopen(task".inp","r",stdin); freopen(task".out","w",stdout); } cin >> n; for(int i=1; i<=n; i++) cin >> a[i].first >> a[i].second; sort(a+1,a+1+n); for(int i=1; i<=n; i++) pre[i] = a[i].second - (a[i].first-a[i-1].first); for(int i=1; i<=n; i++) pre[i] += pre[i-1]; suf[n+1] = -1e36; for(int i=n; i>0; i--) suf[i] = max(suf[i+1],pre[i]); ans = a[n].second; for(int i=1; i<n; i++) { tmp = a[i].second; ans = max(ans,tmp+suf[i]-pre[i]); } printt(ans); cerr << "\nTime: " << 1000.0 * clock() / CLOCKS_PER_SEC << endl; }

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

art.cpp: In function 'int main()':
art.cpp:32:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   32 |         freopen(task".inp","r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
art.cpp:33:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   33 |         freopen(task".out","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...