diff options
author | Nguyễn Gia Phong <vn.mcsinyx@gmail.com> | 2019-04-15 17:20:41 +0700 |
---|---|---|
committer | Nguyễn Gia Phong <vn.mcsinyx@gmail.com> | 2019-04-15 17:20:41 +0700 |
commit | 887c286cc8228e13f85b587ab92b37e920161eb9 (patch) | |
tree | 6528ca8873c4f80b6d13114550615c7a1f1f4afe /codechef/strch.c | |
parent | ebb7f33582fb24fe70f13796b88e93b99c243425 (diff) | |
download | cp-887c286cc8228e13f85b587ab92b37e920161eb9.tar.gz |
Codechef celebrate 4.20 a bit early this year
Diffstat (limited to 'codechef/strch.c')
-rw-r--r-- | codechef/strch.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/codechef/strch.c b/codechef/strch.c new file mode 100644 index 0000000..518378e --- /dev/null +++ b/codechef/strch.c @@ -0,0 +1,30 @@ +#include <stdio.h> +#include <stdlib.h> + +int main() +{ + int t; + long n, i, j; + long long res; + char *s = malloc(1000001), x; + + scanf("%d", &t); + while (t--) { + scanf("%ld", &n); + fgets(s, n, stdin); + res = n * (n + 1) / 2; + scanf("%s %c", s, &x); + + for (i = 0; i < n; ++i) { + if (s[i] == x) + continue; + for (j = i; j < n && s[j] - x; ++j); + res -= (j - i) * (j - i + 1) / 2; + i = j; + } + + printf("%lld\n", res); + } + + return 0; +} |