Submission #557232

# Submission time Handle Problem Language Result Execution time Memory
557232 2022-05-04T22:19:25 Z NintsiChkhaidze trapezoid (balkan11_trapezoid) C++14
0 / 100
194 ms 46664 KB
#include <bits/stdc++.h>
#define pb push_back
#define s second
#define f first
#define ll long long
#define int ll
#define left (h<<1),l,((l+r)>>1)
#define right ((h<<1)|1),((l+r)>>1) + 1,r
using namespace std;
const int N = 400005,mod = 30013;
map <int,int> mp;
int a[N],b[N],c[N],d[N];
pair <int,int> t[4*N];
vector <int> v;
queue <pair<pair<int,int>,pair<int,int> > > q;
vector <pair<pair<int,int>,int> > vec;

void build(int h,int l,int r){
    if (l == r){
        t[h] = {0,0};
        return;
    }
    build(left),build(right);
    if (t[h*2].f > t[h*2 + 1].f) t[h] = t[h*2];
    else if (t[h*2].f < t[h*2 + 1].f) t[h] = t[h*2 + 1];
    else t[h] = {t[h*2].f,(t[h*2].s + t[h*2+1].s)%mod};
}
void upd(int h,int l,int r,int idx,int val1,int val2){
    if (l == r){
        if (val1 == t[h].f) t[h].s += val2;
        else if (val1 > t[h].f) t[h] = {val1,val2};
        return;
    }
    if(idx > (l+r)/2) upd(right,idx,val1,val2);
    else upd(left,idx,val1,val2);
    
    if (t[h*2].f > t[h*2 + 1].f) t[h] = t[h*2];
    else if (t[h*2].f < t[h*2 + 1].f) t[h] = t[h*2 + 1];
    else t[h] = {t[h*2].f,(t[h*2].s + t[h*2+1].s)%mod};
}
pair<int,int> get(int h,int l,int r,int L,int R){
    if (r < L || R < l) return {0,0};
    if (L <= l && r <= R) return t[h];
    pair <int,int> a = get(left,L,R),b = get(right,L,R);
    if (a.f > b.f) return a;
    if (b.f > a.f) return b;
    return {a.f,(a.s + b.s)%mod};
}
signed main() {
    ios_base::sync_with_stdio(0),cin.tie(NULL),cout.tie(NULL);
    int n;
    cin>>n;
    
    build(1,1,N-5);
    for (int i = 1; i <= n; i++){
        cin>>a[i]>>b[i]>>c[i]>>d[i];
        v.pb(a[i]);
        v.pb(b[i]);
        v.pb(c[i]);
        v.pb(d[i]);
        int mn = min({a[i],b[i],c[i],d[i]});
        vec.pb({{a[i],b[i]},i});
    }
    sort(v.begin(),v.end());
    sort(vec.begin(),vec.end());
    int k=0;
    for (int i=0;i<v.size();i++){
        if (!i || v[i] != v[i - 1]) k++;
        mp[v[i]] = k;
    }
    
    for (int i = 0; i < vec.size(); i++){
        int id = vec[i].s,x=vec[i].f.f,y=vec[i].f.s;
        while(q.size() && q.front().f.f < x){
            upd(1,1,N-5,q.front().f.s,q.front().s.f,q.front().s.s);
            q.pop();
        }
        
        pair <int,int> pr = get(1,1,N-5,1,c[id]);
        // cout<<"id = "<<id<<" "<<mn<<" "<<mx<<" | "<<pr.f<<" & "<<pr.s<<endl;
        int len = pr.f,cnt = pr.s;
        if (len == 0) cnt=1;
        q.push({{b[id],d[id]},{len+1,cnt}});
    }
    
    cout<<t[1].f<<" "<<t[1].s;
}

Compilation message

trapezoid.cpp: In function 'int main()':
trapezoid.cpp:61:13: warning: unused variable 'mn' [-Wunused-variable]
   61 |         int mn = min({a[i],b[i],c[i],d[i]});
      |             ^~
trapezoid.cpp:67:19: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   67 |     for (int i=0;i<v.size();i++){
      |                  ~^~~~~~~~~
trapezoid.cpp:72:23: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<std::pair<long long int, long long int>, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   72 |     for (int i = 0; i < vec.size(); i++){
      |                     ~~^~~~~~~~~~~~
trapezoid.cpp:73:40: warning: unused variable 'y' [-Wunused-variable]
   73 |         int id = vec[i].s,x=vec[i].f.f,y=vec[i].f.s;
      |                                        ^
# Verdict Execution time Memory Grader output
1 Incorrect 10 ms 16724 KB Output isn't correct
2 Incorrect 10 ms 16724 KB Output isn't correct
3 Incorrect 11 ms 16852 KB Output isn't correct
4 Incorrect 11 ms 16952 KB Output isn't correct
5 Incorrect 13 ms 17364 KB Output isn't correct
6 Incorrect 14 ms 17748 KB Output isn't correct
7 Incorrect 16 ms 17620 KB Output isn't correct
8 Incorrect 19 ms 18184 KB Output isn't correct
9 Incorrect 27 ms 20024 KB Output isn't correct
10 Incorrect 42 ms 21096 KB Output isn't correct
11 Incorrect 57 ms 24572 KB Output isn't correct
12 Incorrect 110 ms 32900 KB Output isn't correct
13 Incorrect 126 ms 35520 KB Expected int32, but "-2440763290515546816" found
14 Incorrect 136 ms 39736 KB Expected int32, but "-4350462160501143296" found
15 Incorrect 163 ms 38272 KB Output isn't correct
16 Incorrect 173 ms 39748 KB Output isn't correct
17 Incorrect 165 ms 43468 KB Expected int32, but "86897282721426144" found
18 Incorrect 164 ms 35912 KB Output isn't correct
19 Incorrect 177 ms 45472 KB Expected int32, but "2779344083942899712" found
20 Incorrect 194 ms 46664 KB Expected int32, but "7663746684030712512" found