Submission #1174120

#TimeUsernameProblemLanguageResultExecution timeMemory
1174120selunelleUnija (COCI17_unija)C++20
40 / 100
1100 ms117964 KiB
#include<bits/stdc++.h>
using namespace std;
#define ll long long 
int main(){
	ll n,i,j,k=0;
	cin>>n;
	set<ll> s;
	map<ll,ll> mp;
	vector<vector<ll> >v(n,vector<ll>(2));
	vector<pair<ll,ll> > r,ne;
	for(i=0;i<n;i++){
		cin>>v[i][0]>>v[i][1];
		if(s.count(v[i][0]/2)==0){
			s.insert(v[i][0]/2);
			mp[v[i][0]/2]=v[i][1]/2;
		}else{
			mp[v[i][0]/2]=max(mp[v[i][0]/2],v[i][1]/2);
		}
	}
	for(auto w:mp){
		r.push_back({w.first,w.second});
	}
	ne.push_back({0,0});
	sort(r.begin(),r.end());
	for(i=0;i<r.size()-1;i++){
		if(r[i].first<r[i+1].first and r[i].second<r[i+1].second){
			continue;
		}else{
			ne.push_back(r[i]);
		}
	}
	ne.push_back(r[r.size()-1]);
	for(i=ne.size()-1;i>0;i--){
		k+=(ne[i].first-ne[i-1].first)*ne[i].second;
	}
	cout<<k*4;
}
#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...