# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
937860 | 2024-03-04T15:39:31 Z | sleepntsheep | Election (BOI18_election) | C | 3000 ms | 3320 KB |
#include<stdio.h> int lo(int a, int b) { return a<b?a:b; } int hi(int a, int b) { return a>b?a:b; } #define N 500000 int n, q; char s[N+1]; int go[N],bk[N]; int f(char c) { return c == 'C' ? 1 : -1; } int main() { scanf("%d%s%d", &n, s, &q); go[0] = f(s[0]); bk[n-1] = f(s[n-1]); for (int i = 1; i < n; ++i) go[i] = go[i-1] + f(s[i]); for (int i = n - 2; i >= 0; --i) bk[i] = bk[i+1] + f(s[i]); for (int x, y, i = 0; i < q; ++i) { scanf("%d%d", &x, &y); --y; --x; int c = 0, L = 0, R = 0; int at[4000]={0},m=0; for (int i = x; i <= y; ++i) if (s[i] == 'C') ++c; else { if (!c) ++L, at[m++] = i; else --c; } int tot = 0; for (int i = at[0]; i <= y; ++i) tot += (s[i] == 'T'); c = 0; for (int i = y; i >= x; --i) { if (s[i] == 'C') ++c; else { if (i >= at[0]) { if (m > 0 && tot && i == at[m-1]) { --m; ++R; --tot; } else { if (c) --c; else ++R, --tot; } } else { if (c) --c; else ++R; } } } int z = hi(L, R); printf("%d\n", z); } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 7 ms | 2396 KB | Output is correct |
2 | Correct | 8 ms | 2396 KB | Output is correct |
3 | Correct | 6 ms | 2540 KB | Output is correct |
4 | Correct | 7 ms | 2396 KB | Output is correct |
5 | Correct | 5 ms | 2392 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 7 ms | 2396 KB | Output is correct |
2 | Correct | 8 ms | 2396 KB | Output is correct |
3 | Correct | 6 ms | 2540 KB | Output is correct |
4 | Correct | 7 ms | 2396 KB | Output is correct |
5 | Correct | 5 ms | 2392 KB | Output is correct |
6 | Execution timed out | 3038 ms | 3320 KB | Time limit exceeded |
7 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 7 ms | 2396 KB | Output is correct |
2 | Correct | 8 ms | 2396 KB | Output is correct |
3 | Correct | 6 ms | 2540 KB | Output is correct |
4 | Correct | 7 ms | 2396 KB | Output is correct |
5 | Correct | 5 ms | 2392 KB | Output is correct |
6 | Execution timed out | 3038 ms | 3320 KB | Time limit exceeded |
7 | Halted | 0 ms | 0 KB | - |