답안 #797262

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
797262 2023-07-29T08:38:09 Z vjudge1 푸드 코트 (JOI21_foodcourt) C++17
0 / 100
740 ms 524288 KB

// Author : حسن

#include <bits/stdc++.h>



using namespace std;

#define TL ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define rall(s) s.rbegin(),s.rend()
#define all(s) s.begin(),s.end()
#define pb push_back
#define fi first
#define se second
#define ll long long
#define ld long double
#define YES cout<<"YES\n"
#define Yes cout<<"Yes\n"
#define yes cout<<"yes\n"
#define NO cout<<"NO\n"
#define No cout<<"No\n"
#define no cout<<"no\n"


const int N = 7e4 + 9 , mod = 1e9 + 7;
ll  a[N] = {},  c[N] , dp[N] = {} , b[N];
deque<ll>d[N];
vector<pair<ll,ll>>v[N];
struct qu{
    int k , l, r , x , y;
};
void solve(){
    ll q , i , j , m ,n, z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = -1;
    cin>>n>>m>>q;
    set<ll>st;
    if(n >= 2000 && q >= 2000){
    while(q--){
        cin>>k;
        if(k == 1){
            cin>>l>>r>>x>>y;
            for(i = l; i <=r ;i++){
                v[i].pb({y , x}) , b[i] += y;
                if(d[i].size() == 0)
                d[i].pb(y);
                else
                    d[i].pb(d[i].back() + y);
            }
        }else if(k == 2){
            cin>>l>>r>>x;
                for(i = l; i <= r; i++){
                    c[i] += x;
                    if(b[i]  < c[i])
                        c[i] = b[i];
                }
        }else{
            cin>>x>>y;
            if(b[x] - c[x] >= y){
                k = c[x] + y;
                l = 0;
                r = v[x].size() - 1;
                while(l != r){
                    m = (l + r) / 2;
                    if(d[x][m] >= k)
                        r = m ;
                    else
                        l = m + 1;
                }
                cout<<v[x][l].se<<"\n";
            }else {
            cout<<0<<"\n";
            }
        }
    }
    return;
    }
    vector<qu>vc;
    f = 0;
    while(q--){
        cin>>k;
        if(k == 1){
            cin>>l>>r>>x>>y;
            vc.pb({k , l , r , x, y });
            if(y != 1)
                f = 1;
        }else if(k == 2){
            cin>>l>>r>>x;
            if(x != 1)
                f = 1;
            vc.pb({k , l , r , x, y , });
        }else{
            cin>>x>>y;
            vc.pb({k , l , r , x, y , });
        }
    }
    z = 0;
    for(auto to : vc){
        cin>>k;
        k = to.k , l = to.l , r = to.r , x = to.x , y = to.x;
        if(f == 1){
        if(k == 1){
            for(i = l; i <=r ;i++)
                d[i].pb(x) , st.insert(i);
        }else if(k == 2){
            auto it = st.lower_bound(l);
            while(st.size() && it != st.end() && *it <= r){
            i = *it;
            s = 0;
            while(d[i].size() && s < x){
                d[i].pop_front();
                s++;
            }
            if(d[i].size() == 0)
                st.erase(i);
            it = st.lower_bound(i + 1);
            }
        }else{
            if(d[x].size() >= y)
                cout<<d[x][y - 1]<<"\n";
            else
                cout<<0<<"\n";
        }
        }else {
            if(k == 3){
                deque<int>v;
                for(i = 0; i < z; i++){
                    if(vc[i].k == 1 && vc[i].l <= x && vc[i].r >= x)
                        v.pb(vc[i].x);
                    if(vc[i].k == 2 && vc[i].l <= x && vc[i].r >= x)
                        v.pop_front();
                }
                if(v.size() >= y)
                    cout<<v[y - 1]<<"\n";
                else
                    cout<<0<<"\n";
            }
        }
        z++;
    }
}

int main(){

     TL;/*
     #ifndef ONLINE_JUDGE
     freopen("input.txt", "r", stdin);
     freopen("output.txt", "w", stdout);
     #endif
     */

int t = 1;
//cin>>t;

while(t--)
     {
     solve();
     }

}
// Author : حسن

Compilation message

foodcourt.cpp: In function 'void solve()':
foodcourt.cpp:84:20: warning: narrowing conversion of 'k' from 'long long int' to 'int' [-Wnarrowing]
   84 |             vc.pb({k , l , r , x, y });
      |                    ^
foodcourt.cpp:84:24: warning: narrowing conversion of 'l' from 'long long int' to 'int' [-Wnarrowing]
   84 |             vc.pb({k , l , r , x, y });
      |                        ^
foodcourt.cpp:84:28: warning: narrowing conversion of 'r' from 'long long int' to 'int' [-Wnarrowing]
   84 |             vc.pb({k , l , r , x, y });
      |                            ^
foodcourt.cpp:84:32: warning: narrowing conversion of 'x' from 'long long int' to 'int' [-Wnarrowing]
   84 |             vc.pb({k , l , r , x, y });
      |                                ^
foodcourt.cpp:84:35: warning: narrowing conversion of 'y' from 'long long int' to 'int' [-Wnarrowing]
   84 |             vc.pb({k , l , r , x, y });
      |                                   ^
foodcourt.cpp:91:20: warning: narrowing conversion of 'k' from 'long long int' to 'int' [-Wnarrowing]
   91 |             vc.pb({k , l , r , x, y , });
      |                    ^
foodcourt.cpp:91:24: warning: narrowing conversion of 'l' from 'long long int' to 'int' [-Wnarrowing]
   91 |             vc.pb({k , l , r , x, y , });
      |                        ^
foodcourt.cpp:91:28: warning: narrowing conversion of 'r' from 'long long int' to 'int' [-Wnarrowing]
   91 |             vc.pb({k , l , r , x, y , });
      |                            ^
foodcourt.cpp:91:32: warning: narrowing conversion of 'x' from 'long long int' to 'int' [-Wnarrowing]
   91 |             vc.pb({k , l , r , x, y , });
      |                                ^
foodcourt.cpp:91:35: warning: narrowing conversion of 'y' from 'long long int' to 'int' [-Wnarrowing]
   91 |             vc.pb({k , l , r , x, y , });
      |                                   ^
foodcourt.cpp:94:20: warning: narrowing conversion of 'k' from 'long long int' to 'int' [-Wnarrowing]
   94 |             vc.pb({k , l , r , x, y , });
      |                    ^
foodcourt.cpp:94:24: warning: narrowing conversion of 'l' from 'long long int' to 'int' [-Wnarrowing]
   94 |             vc.pb({k , l , r , x, y , });
      |                        ^
foodcourt.cpp:94:28: warning: narrowing conversion of 'r' from 'long long int' to 'int' [-Wnarrowing]
   94 |             vc.pb({k , l , r , x, y , });
      |                            ^
foodcourt.cpp:94:32: warning: narrowing conversion of 'x' from 'long long int' to 'int' [-Wnarrowing]
   94 |             vc.pb({k , l , r , x, y , });
      |                                ^
foodcourt.cpp:94:35: warning: narrowing conversion of 'y' from 'long long int' to 'int' [-Wnarrowing]
   94 |             vc.pb({k , l , r , x, y , });
      |                                   ^
foodcourt.cpp:119:28: warning: comparison of integer expressions of different signedness: 'std::deque<long long int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
  119 |             if(d[x].size() >= y)
      |                ~~~~~~~~~~~~^~~~
foodcourt.cpp:133:29: warning: comparison of integer expressions of different signedness: 'std::deque<int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
  133 |                 if(v.size() >= y)
      |                    ~~~~~~~~~^~~~
foodcourt.cpp:35:16: warning: unused variable 'j' [-Wunused-variable]
   35 |     ll q , i , j , m ,n, z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = -1;
      |                ^
foodcourt.cpp:35:61: warning: unused variable 'mn' [-Wunused-variable]
   35 |     ll q , i , j , m ,n, z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = -1;
      |                                                             ^~
foodcourt.cpp:35:74: warning: unused variable 'mx' [-Wunused-variable]
   35 |     ll q , i , j , m ,n, z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = -1;
      |                                                                          ^~
# 결과 실행 시간 메모리 Grader output
1 Runtime error 61 ms 99472 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 61 ms 99472 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 441 ms 53432 KB Output is correct
2 Correct 346 ms 55140 KB Output is correct
3 Correct 425 ms 56184 KB Output is correct
4 Correct 436 ms 56128 KB Output is correct
5 Correct 366 ms 59184 KB Output is correct
6 Correct 376 ms 59044 KB Output is correct
7 Incorrect 39 ms 50508 KB Output isn't correct
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 60 ms 99352 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 61 ms 99472 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 740 ms 524288 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 61 ms 99472 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 61 ms 99472 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -