Submission #1162140

#TimeUsernameProblemLanguageResultExecution timeMemory
1162140mnbvcxz123Unija (COCI17_unija)C++20
100 / 100
216 ms32568 KiB
#include <bits/stdc++.h>
using namespace std;
 
#define ll long long
#define ar array
#define int long long
 
const int N = 5e5 + 20;
const int INF = 1e17;
const int MOD = 8;
const int X = 4000;
const int LOG = 21;
 
#pragma GCC optimize("O3,Ofast,unroll-loops")
#pragma GCC target("avx,avx2")
 
bitset<N> del;
 
bool cmp(ar<int, 2> a, ar<int, 2> b){
	if(a[0] == b[0])return a[1] > b[1];
	return a[0] < b[0];
}
 
signed main(){ios_base::sync_with_stdio(false);cin.tie(0);
	int n;
	cin>>n;
	ar<int, 2> A[n];
	for(int i = 0;i  < n;i++){
		cin>>A[i][0]>>A[i][1];
	}
	sort(A, A + n, cmp);
	
	vector<ar<int, 2> > v;
	v.push_back(A[0]);
	for(int i = 1;i < n;i++){
		while(v.back()[1] < A[i][1])v.pop_back();
		v.push_back(A[i]);
	}
	
	int ans = v[0][0] * v[0][1];
	for(int i = 1;i < v.size();i++)ans += v[i][0] * v[i][1] - v[i-1][0] * v[i][1];
	cout<<ans;
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...