Submission #845470

# Submission time Handle Problem Language Result Execution time Memory
845470 2023-09-06T13:45:43 Z jamkel19 Trampoline (info1cup20_trampoline) C++14
43 / 100
136 ms 1048576 KB
#include <bits/stdc++.h>
using namespace std;
#define st first
#define nd second
typedef long long ll;
int main()
{
    ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    ll n,m,g,q;
    cin>>n>>m>>g;
    vector<int>v(n,-1);
    vector<vector<ll>>a;
    ll x,y;
    for(ll i=0;i<g;i++)
    {
        cin>>x>>y;
        if(v[x-1]==-1)
        {
            a.push_back({y-1});
            v[x-1]=a.size()-1;
        }
        else
        {
            a[v[x-1]].push_back(y-1);
        }
    }
    for(ll i=0;i<a.size();i++)
    {
        sort(a[i].begin(),a[i].end());
    }
    cin>>q;
    ll x1,x2,y1,y2;
    bool p=true;
    ll start,meta,s;
    while(q--)
    {
        cin>>x1>>y1>>x2>>y2;
        x1--;x2--;y1--;y2--;
        p=true;
        if(x2<x1 or y2<y1)
        {
            p=false;
        }
        else
        {
        for(ll o=x1;o<x2;o++)
        {
            if(v[o]==-1)
            {
                p=false;
                break;
            }
            int i=v[o];
            start=0;meta=a[i].size()-1;s=(start+meta)/2;
            while(start<meta)
            {
                if(a[i][s]<y1)
                {
                    start=s+1;
                }
                else
                {
                    meta=s;
                }
                s=(start+meta)/2;
            }
                if(a[i][s]>=y1 && a[i][s]<=y2)
                {
                    y1=a[i][s];
                }
                else
                {
                    p=false;
                    break;
                }
        }
        }
        if(p)
        {
            cout<<"Yes"<<endl;
        }
        else
        {
            cout<<"No"<<endl;
        }
    }
}

Compilation message

trampoline.cpp: In function 'int main()':
trampoline.cpp:27:17: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<std::vector<long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   27 |     for(ll i=0;i<a.size();i++)
      |                ~^~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 348 KB 200 token(s): yes count is 21, no count is 179
2 Correct 2 ms 604 KB 200 token(s): yes count is 70, no count is 130
3 Correct 1 ms 348 KB 197 token(s): yes count is 25, no count is 172
# Verdict Execution time Memory Grader output
1 Correct 39 ms 3164 KB 4000 token(s): yes count is 99, no count is 3901
2 Correct 40 ms 3168 KB 4000 token(s): yes count is 91, no count is 3909
3 Correct 84 ms 2920 KB 4000 token(s): yes count is 4000, no count is 0
4 Correct 70 ms 3160 KB 4000 token(s): yes count is 1991, no count is 2009
# Verdict Execution time Memory Grader output
1 Runtime error 136 ms 1048576 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 116 ms 1048576 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 120 ms 1048576 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -