Submission #246062

#TimeUsernameProblemLanguageResultExecution timeMemory
246062Vladikus004Unija (COCI17_unija)C++14
100 / 100
407 ms31096 KiB
#include <bits/stdc++.h>
#define inf 2e9
#define int long long
#define all(v) v.begin(), v.end()
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair <int, int> pii;

const int N = 1000010;
int n;
pii a[N];

bool cmp(pii a, pii b){
    return a.first > b.first || (a.first == b.first && a.second > b.second);
}

int32_t main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    #ifdef LOCAL
        freopen("input.txt", "r", stdin);
    #endif // LOCAL
    cin >> n;
    for (int i = 0; i < n; i++)
        cin >> a[i].first >> a[i].second;
    sort(a, a + n, cmp);
    ll ans = a[0].first * a[0].second;
    int mx = a[0].second;
    for (int i = 1; i < n; i++){
        if (a[i].first == a[i - 1].first) continue;
        if (a[i].second <= mx) continue;
        ans += a[i].first * (a[i].second - mx);
        mx = a[i].second;
    }
    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...