Submission #797235

#TimeUsernameProblemLanguageResultExecution timeMemory
797235vjudge1Food Court (JOI21_foodcourt)C++17
14 / 100
1084 ms187268 KiB
// 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]; 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; } 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 (stderr)

foodcourt.cpp: In function 'void solve()':
foodcourt.cpp:97: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]
   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;
      |                                                                          ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...