# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
25124 | 2017-06-20T07:16:26 Z | 김동현(#1052) | Sterilizing Spray (JOI15_sterilizing) | C++14 | 2879 ms | 2440 KB |
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int MX = 100000, B = 50; int n, q, K; struct Buc{ int a[B], c, nc; ll s; void ch(int x, int v){ s -= a[x]; a[x] = v; s += a[x]; } void dv(int x){ s -= a[x]; a[x] /= K; s += a[x]; } ll rec(){ int fl; while(c <= 30 && c < nc){ fl = 0; for(int i = 0; i < B; i++){ if(a[i]){ dv(i); fl = 1; } } if(!fl) break; c++; } if(!fl) c = nc = 0; return s; } void rn(){ rec(); c = nc = 0; } }; Buc a[MX / B + 1]; int main(){ scanf("%d%d%d", &n, &q, &K); for(int i = 0; i < n; i++){ scanf("%d", a[i / B].a + (i % B)); a[i / B].s += a[i / B].a[i % B]; } for(int t, x, y; q--; ){ scanf("%d%d%d", &t, &x, &y); if(t == 1){ x--; a[x / B].rn(); a[x / B].ch(x % B, y); } else if(t == 2){ x--; y--; if(x % B) a[x / B].rn(); for(; x <= y && x % B; x++) a[x / B].dv(x % B); for(; x + B <= y; x += B) a[x / B].nc++; if(x <= y) a[x / B].rn(); for(; x <= y; x++) a[x / B].dv(x % B); } else{ x--; y--; ll ans = 0; if(x % B) a[x / B].rec(); for(; x <= y && x % B; x++) ans += a[x / B].a[x % B]; for(; x + B <= y; x += B) ans += a[x / B].rec(); if(x <= y) a[x / B].rec(); for(; x <= y; x++) ans += a[x / B].a[x % B]; printf("%lld\n", ans); } } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 2440 KB | Output is correct |
2 | Correct | 0 ms | 2440 KB | Output is correct |
3 | Correct | 0 ms | 2440 KB | Output is correct |
4 | Correct | 3 ms | 2440 KB | Output is correct |
5 | Correct | 3 ms | 2440 KB | Output is correct |
6 | Correct | 3 ms | 2440 KB | Output is correct |
7 | Correct | 3 ms | 2440 KB | Output is correct |
8 | Correct | 6 ms | 2440 KB | Output is correct |
9 | Correct | 3 ms | 2440 KB | Output is correct |
10 | Correct | 3 ms | 2440 KB | Output is correct |
11 | Correct | 3 ms | 2440 KB | Output is correct |
12 | Correct | 3 ms | 2440 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 689 ms | 2440 KB | Output is correct |
2 | Correct | 646 ms | 2440 KB | Output is correct |
3 | Correct | 566 ms | 2440 KB | Output is correct |
4 | Correct | 773 ms | 2440 KB | Output is correct |
5 | Correct | 956 ms | 2440 KB | Output is correct |
6 | Correct | 976 ms | 2440 KB | Output is correct |
7 | Correct | 986 ms | 2440 KB | Output is correct |
8 | Correct | 946 ms | 2440 KB | Output is correct |
9 | Correct | 1123 ms | 2440 KB | Output is correct |
10 | Correct | 1106 ms | 2440 KB | Output is correct |
11 | Correct | 1119 ms | 2440 KB | Output is correct |
12 | Correct | 1093 ms | 2440 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 46 ms | 2440 KB | Output is correct |
2 | Correct | 59 ms | 2440 KB | Output is correct |
3 | Correct | 89 ms | 2440 KB | Output is correct |
4 | Correct | 226 ms | 2440 KB | Output is correct |
5 | Correct | 749 ms | 2440 KB | Output is correct |
6 | Correct | 743 ms | 2440 KB | Output is correct |
7 | Correct | 1143 ms | 2440 KB | Output is correct |
8 | Correct | 703 ms | 2440 KB | Output is correct |
9 | Correct | 2663 ms | 2440 KB | Output is correct |
10 | Correct | 2599 ms | 2440 KB | Output is correct |
11 | Correct | 2696 ms | 2440 KB | Output is correct |
12 | Correct | 2853 ms | 2440 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 293 ms | 2440 KB | Output is correct |
2 | Correct | 359 ms | 2440 KB | Output is correct |
3 | Correct | 226 ms | 2440 KB | Output is correct |
4 | Correct | 289 ms | 2440 KB | Output is correct |
5 | Correct | 796 ms | 2440 KB | Output is correct |
6 | Correct | 803 ms | 2440 KB | Output is correct |
7 | Correct | 796 ms | 2440 KB | Output is correct |
8 | Correct | 789 ms | 2440 KB | Output is correct |
9 | Correct | 2773 ms | 2440 KB | Output is correct |
10 | Correct | 2829 ms | 2440 KB | Output is correct |
11 | Correct | 2879 ms | 2440 KB | Output is correct |
12 | Correct | 2726 ms | 2440 KB | Output is correct |