Submission #939592

#TimeUsernameProblemLanguageResultExecution timeMemory
939592n3rm1nFood Court (JOI21_foodcourt)C++17
0 / 100
18 ms35932 KiB
#include<bits/stdc++.h> using namespace std; const long long MAXN = 3e5+10; void speed() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); } long long n, m, que; vector < pair < long long/**type*/, long long/**number*/ > > q[MAXN]; vector < int > pref[MAXN]; long long total[MAXN]; long long type; long long l, r, c, k, a, b; int t[MAXN * 4], lazy[MAXN * 4]; void push_lazy(int i, int l, int r) { if(lazy[i]) t[i] += (r - l + 1) * lazy[i]; if(lazy[i] && l != r) { lazy[2*i] += lazy[i]; lazy[2*i+1] += lazy[i]; } lazy[i] = 0; } int ql, qr, val; int query(int i, int l, int r) { push_lazy(i, l, r); if(ql <= l && r <= qr)return t[i]; if(qr < l || r < ql)return 0; int mid = (l + r)/2; return query(2*i, l, mid) + query(2*i+1, mid+1, r); } void update(int i, int l, int r) { push_lazy(i, l, r); if(qr < l || ql > r)return; if(ql <= l && r <= qr) { lazy[i] = val; push_lazy(i, l, r); return; } int mid = (l + r)/2; update(2*i, l, mid); update(2*i+1, mid+1, r); t[i] = t[2*i] + t[2*i+1]; } void read() { cin >> n >> m >> que; int last_add = 0; for (long long i = 1; i <= que; ++ i) { cin >> type; if(type == 1) { cin >> l >> r >> c >> k; for (int j = l; j <= r; ++ j) { cout << j << endl; q[j].push_back(make_pair(c, k)); int last = pref[j].back(); pref[j].push_back(last + k); } } else if(type == 2) { cin >> l >> r >> k; ql = l; qr = r; val = k; update(1, 1, n); } else { cin >> a >> b; ql = a; qr = a; b += query(1, 1, n); int bl = 0, br = pref[a].size(), mid, bans = 0; while(bl <= br) { mid = (bl + br)/2; if(pref[a][mid] < b) { bl = mid + 1; } else { bans = mid; br = mid - 1; } } cout << q[a][bans].first << endl; } } } int main() { //speed(); read(); return 0; }

Compilation message (stderr)

foodcourt.cpp: In function 'void read()':
foodcourt.cpp:58:9: warning: unused variable 'last_add' [-Wunused-variable]
   58 |     int last_add = 0;
      |         ^~~~~~~~
#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...