제출 #797265

#제출 시각아이디문제언어결과실행 시간메모리
797265vjudge1푸드 코트 (JOI21_foodcourt)C++17
7 / 100
1068 ms234528 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]; 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 : حسن

컴파일 시 표준 에러 (stderr) 메시지

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;
      |                                                                          ^~
#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...