Cách đa năng hoá toán tử < , và những lợi ích của nó trong set,map.
Đề bài: https://codeforces.com/problemset/problem/608/A
Code:
- #include<bits/stdc++.h>
- using namespace std;
- #define ll long long
- struct cap{
- ll tang,tg;
- };
- // bool tmp(cap a, cap b){
- // if(a.tang==b.tang) return a.tg<b.tg;
- // else return a.tang>b.tang;
- // }
- bool operator < (const cap& a, const cap& b){
- if(a.tang==b.tang) return a.tg<b.tg;
- return a.tang>b.tang;
- }
- int main(){
- // freopen("input.txt","r",stdin);
- // freopen("output.txt","w",stdout);
- ll n,s;
- set<cap> ss;
- cin>>n>>s;
- cap arr[n];
- ll i;
- for(i=0;i<n;i++){
- cin>>arr[i].tang>>arr[i].tg;
- ss.insert(arr[i]);
- }
- // for(auto pp: ss){
- // cout<<pp.tang<<" "<<pp.tg<<'\n';
- // }
- sort(arr,arr+n);
- // for(i=0;i<n;i++){
- // cout<<arr[i].tang<<" "<<arr[i].tg<<'\n';
- // }
- ll tructhoigian = 0;
- ll vt = s;
- for(i=0;i<n;i++){
- tructhoigian = tructhoigian + (vt-arr[i].tang);
- vt=arr[i].tang;
- if(arr[i].tg>tructhoigian) tructhoigian = arr[i].tg;
- }
- if(vt>0){
- tructhoigian+=vt;
- }
- cout<<tructhoigian;
- }
Nhận xét
Đăng nhận xét