Submission #72144076


Source Code Expand

Copy
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* sousa(const char* str) {
char* result = malloc(strlen(str) * 2 + 1);
int i, combo = 1, pos = 0;
if (result == NULL) exit(2);
if (*str == '\0') {
result[0] = '\0';
return result;
}
for (i = 1; ; i++) {
if (str[i] != str[i - 1]) {
pos += sprintf(result + pos, "%d%c", combo, str[i - 1]);
combo = 1;
if (str[i] == '\0') {
result[pos] = '\0';
return result;
}
} else {
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char* sousa(const char* str) {
	char* result = malloc(strlen(str) * 2 + 1);
	int i, combo = 1, pos = 0;
	if (result == NULL) exit(2);
	if (*str == '\0') {
		result[0] = '\0';
		return result;
	}
	for (i = 1; ; i++) {
		if (str[i] != str[i - 1]) {
			pos += sprintf(result + pos, "%d%c", combo, str[i - 1]);
			combo = 1;
			if (str[i] == '\0') {
				result[pos] = '\0';
				return result;
			}
		} else {
			combo++;
		}
	}
}

int main(void) {
	int n, i;
	char *str = malloc(128);
	if (str == NULL) return 2;
	if (scanf("%d", &n) != 1) return 1;
	if (scanf("%127s", str) != 1) return 1;
	for (i = 0; i < n; i++) {
		char *newstr = sousa(str);
		free(str);
		str = newstr;
	}
	puts(str);
	free(str);
	return 0;
}

Submission Info

Submission Time
Task B - JOI 2006 本選 問題2
User mikecat
Language C23 (GCC 14.2.0)
Score 20
Code Size 813 Byte
Status AC
Exec Time 4 ms
Memory 1776 KiB

Judge Result

Set Name set01 set02 set03 set04 set05
Score / Max Score 4 / 4 4 / 4 4 / 4 4 / 4 4 / 4
Status
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
Set Name Test Cases
set01 data1
set02 data2
set03 data3
set04 data4
set05 data5
Case Name Status Exec Time Memory
data1 AC 0 ms 1708 KiB
data2 AC 0 ms 1720 KiB
data3 AC 0 ms 1624 KiB
data4 AC 0 ms 1680 KiB
data5 AC 4 ms 1776 KiB


2026-01-02 (Fri)
17:00:47 +09:00