답안 #797227

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
797227 2023-07-29T08:08:37 Z vjudge1 푸드 코트 (JOI21_foodcourt) C++17
7 / 100
1000 ms 131908 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<int>d[N];
vector<pair<int,int>>v[N];
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 = + 1;
                }
                cout<<v[x][l].se<<"\n";
            }else {
            cout<<0<<"\n";
            }
        }
    }
    return;
    }
    while(q--){
        cin>>k;
        if(k == 1){
            cin>>l>>r>>x>>y;
            for(i = l; i <=r ;i++)
                d[i].pb(x) , st.insert(i);
        }else if(k == 2){
            cin>>l>>r>>x;
            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{
            cin>>x>>y;
            if(d[x].size() >= y)
                cout<<d[x][y - 1]<<"\n";
            else
                cout<<0<<"\n";
        }
    }
}

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:97:28: warning: comparison of integer expressions of different signedness: 'std::deque<int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   97 |             if(d[x].size() >= y)
      |                ~~~~~~~~~~~~^~~~
foodcourt.cpp:32:16: warning: unused variable 'j' [-Wunused-variable]
   32 |     ll q , i , j , m ,n, z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = -1;
      |                ^
foodcourt.cpp:32:26: warning: unused variable 'z' [-Wunused-variable]
   32 |     ll q , i , j , m ,n, z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = -1;
      |                          ^
foodcourt.cpp:32:38: warning: unused variable 'f' [-Wunused-variable]
   32 |     ll q , i , j , m ,n, z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = -1;
      |                                      ^
foodcourt.cpp:32:61: warning: unused variable 'mn' [-Wunused-variable]
   32 |     ll q , i , j , m ,n, z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = -1;
      |                                                             ^~
foodcourt.cpp:32:74: warning: unused variable 'mx' [-Wunused-variable]
   32 |     ll q , i , j , m ,n, z , s  = 0, f, l , r , k , x , y , mn  = 1e18 , mx = -1;
      |                                                                          ^~
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1078 ms 49108 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1078 ms 49108 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 65 ms 49112 KB Output is correct
2 Correct 77 ms 49104 KB Output is correct
3 Correct 76 ms 49120 KB Output is correct
4 Correct 82 ms 49128 KB Output is correct
5 Correct 97 ms 49132 KB Output is correct
6 Correct 97 ms 49136 KB Output is correct
7 Correct 38 ms 49108 KB Output is correct
8 Correct 39 ms 49144 KB Output is correct
9 Correct 73 ms 49696 KB Output is correct
10 Correct 77 ms 49056 KB Output is correct
11 Correct 66 ms 49368 KB Output is correct
12 Correct 65 ms 49132 KB Output is correct
13 Correct 74 ms 49068 KB Output is correct
14 Correct 93 ms 49232 KB Output is correct
15 Correct 101 ms 49344 KB Output is correct
16 Correct 103 ms 49332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Runtime error 72 ms 99248 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1078 ms 49108 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1069 ms 131908 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1078 ms 49108 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1078 ms 49108 KB Time limit exceeded
2 Halted 0 ms 0 KB -