제출 #264348

#제출 시각아이디문제언어결과실행 시간메모리
264348MarlovArt Exhibition (JOI18_art)C++14
0 / 100
1 ms384 KiB
/* Code by @marlov */ #include <iostream> #include <fstream> #include <string> #include <sstream> #include <vector> #include <string> #include <cmath> #include <algorithm> #include <iomanip> #include <utility> #include <set> #include <unordered_set> #include <map> #include <unordered_map> #include <stack> #include <queue> #include <iterator> using namespace std; typedef long long ll; typedef pair<int,int> pi; #define maxN 500000 int N; pair<int,int> arr[maxN]; int ts=0; int result=0; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin>>N; for(int i=0;i<N;i++){ cin>>arr[i].first>>arr[i].second; ts+=arr[i].second; } sort(arr,arr+N); int p1=0; int p2=N-1; result=ts-(arr[N-1].first-arr[0].first); while(p1!=p2){ int n1=(ts-arr[p1].second)-(arr[p2].first-arr[p1+1].first); int n2=(ts-arr[p2].second)-(arr[p2-1].first-arr[p1].first); if(n1>=n2){ ts-=arr[p2].second; p2--; result=max(result,n1); }else{ ts-=arr[p1].second; p1++; result=max(result,n2); } } cout<<result<<'\n'; return 0; } /* stuff you should look for * int overflow, array bounds * special cases (n=1,n=0?) * do smth instead of nothing and stay organized */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...