답안 #829979

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
829979 2023-08-18T16:32:16 Z tolbi 새 집 (APIO18_new_home) C++17
0 / 100
5000 ms 851540 KB
#pragma optimize("Bismillahirrahmanirrahim")
//█▀█─█──█──█▀█─█─█
//█▄█─█──█──█▄█─█■█
//█─█─█▄─█▄─█─█─█─█
//Allahuekber
//ahmet23 orz...
//FatihSultanMehmedHan
//YavuzSultanSelimHan
//AbdulhamidHan
//Sani buyuk Osman Pasa Plevneden cikmam diyor
#define author tolbi
#include <bits/stdc++.h>
using namespace std;
#define deci(x) int x;cin>>x;
#define decstr(x) string x;cin>>x;
#define sortarr(x) sort(x.begin(), x.end())
#define sortrarr(x) sort(x.rbegin(), x.rend())
#define rev(x) reverse(x.begin(), x.end())
#define cinarr(x) for (auto &it : x) cin>>it;
#define coutarr(x) for (auto &it : x) cout<<it<<" ";cout<<endl;
#define tol(bi) (1LL<<((int)(bi)))
#define endl '\n'
#define int long long
mt19937 ayahya(chrono::high_resolution_clock().now().time_since_epoch().count());
int32_t main(){
	int T = 1;
	int tno = 0;
	while (T-(tno++)){
        deci(n);deci(q);deci(k);
        vector<array<int,4>> qu;
        vector<multiset<int>> arr(k);
        for (int i = 0; i < n; ++i)
        {
            deci(x);deci(t);deci(a);deci(b);
            qu.push_back({a,t,x,1});
            qu.push_back({b+1,x,t,-1});
        }
        sortarr(qu);
        int indi = 0;
        vector<array<int,3>> qarr;
        for (int i = 0; i < q; i++){
            deci(x);deci(t);
            qarr.push_back({t,x,i});
        }
        vector<int> ansarr(q);
        sortarr(qarr);
        for (int i = 0; i < qarr.size(); ++i)
        {
            while (indi<qu.size() && qu[indi][0]<=qarr[i][0]){
                if (qu[indi][3]==1){
                    arr[qu[indi][1]].insert(qu[indi][2]);
                }
                else {
                    arr[qu[indi][1]].erase(arr[qu[indi][1]].find(qu[indi][2]));
                }
            }
            int pos = qarr[i][1];
            int ans = -1;
            for (int i = 0; i < k; i++){
                if (arr[i].size()==0) continue;
                auto it = arr[i].lower_bound(pos);
                int crr = LONG_LONG_MAX;
                if (it!=arr[i].end()) crr=min(crr,(*it)-pos);
                if (it!=arr[i].begin()){
                    it--;
                    crr=min(crr,pos-(*it));
                }
            }
            ansarr[qarr[i][2]]=ans;
        }
        for (int i = 0; i < ansarr.size(); ++i)
        {
            cout<<ansarr[i]<<endl;
        }
    }
}

Compilation message

new_home.cpp:1: warning: ignoring '#pragma optimize ' [-Wunknown-pragmas]
    1 | #pragma optimize("Bismillahirrahmanirrahim")
      | 
new_home.cpp: In function 'int32_t main()':
new_home.cpp:47:27: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::array<long long int, 3> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |         for (int i = 0; i < qarr.size(); ++i)
      |                         ~~^~~~~~~~~~~~~
new_home.cpp:49:24: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::array<long long int, 4> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   49 |             while (indi<qu.size() && qu[indi][0]<=qarr[i][0]){
      |                    ~~~~^~~~~~~~~~
new_home.cpp:71:27: 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]
   71 |         for (int i = 0; i < ansarr.size(); ++i)
      |                         ~~^~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 5088 ms 851540 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 5088 ms 851540 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 5043 ms 817276 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 5043 ms 830016 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 5088 ms 851540 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 5088 ms 851540 KB Time limit exceeded
2 Halted 0 ms 0 KB -