CSES - Datatähti 2017 alku - Results
Submission details
Task:Pakkaus
Sender:cattes
Submission time:2016-10-07 15:49:29 +0300
Language:C++
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED18
#2ACCEPTED23
#3ACCEPTED59
Test results
testverdicttimegroup
#1ACCEPTED0.04 s1details
#2ACCEPTED0.05 s1details
#3ACCEPTED0.05 s1details
#4ACCEPTED0.05 s1details
#5ACCEPTED0.05 s1details
#6ACCEPTED0.05 s2details
#7ACCEPTED0.07 s2details
#8ACCEPTED0.05 s2details
#9ACCEPTED0.06 s2details
#10ACCEPTED0.05 s2details
#11ACCEPTED0.09 s3details
#12ACCEPTED0.15 s3details
#13ACCEPTED0.06 s3details
#14ACCEPTED0.05 s3details
#15ACCEPTED0.06 s3details

Code

//#include <stdio.h>
#include <iostream>
#include <sstream>
#include <cstring>
#include <math.h>


int wut(char * asd) {
	if (asd == 0) { return 0; }
	int i = 0;
	while (1) {
		if (asd[i] != '\0') {
			i++;
		}
		else {
			break;
		}
	}
	return i;
}

void append(char ** dst, char * thing) {
	int a = wut(*dst);
	int b = wut(thing);
	char * lol = new char[a+b+1];
	lol[a + b] = '\0';
	memcpy(lol, *dst, a);
	memcpy(lol + a, thing, b);
	delete[] * dst;
	*dst = lol;
}

int shittyAtoi(char * input, int numNumbers) {
	int num = 0;
	for (int i = 0; i < numNumbers; i++) {
		if (i == numNumbers - 1) {
			num = num + (input[i] - 48);
		}
		else {
			num = num + (input[i] - 48) * pow(10,(numNumbers-i-1));
		}
	}
	return num;
}


char * notmain(char * input) {

	char * masterbuf = nullptr;

	int offset = 0;
	int triger = 0;

	char nums[200];
	int nn = 0;
	char * letts = new char[2000000];
	int nl = 0;

	int totalcount = 0;

	while (1) {
		char c = input[offset];

		if ((c <= 57 && c >= 48) || c == '\0') {
			if (triger == 1) {
				nums[nn] = '\0';
				letts[nl] = '\0';

				int num = shittyAtoi(nums, nn);
				totalcount = totalcount + num * nl;

				if (c == '\0') {
					break;
				}

				triger = 0;
				nums[0] = c;
				nn = 1;
				nl = 0;
			}
			else {
				nums[nn] = c;
				nn++;
			}
		}
		else {
			letts[nl] = c;
			nl++;
			triger = 1;
		}

		offset++;
	}

	//printf("totalcount: %i\n", totalcount);
	masterbuf = new char[totalcount + 1];
	masterbuf[totalcount] = '\0';
	nn = 0;
	nl = 0;
	offset = 0;
	triger = 0;
	int mboffset = 0;

	while (1) {
		char c = input[offset];
		

		if ((c <= 57 && c >= 48) || c == '\0') {
			if (triger == 1) {
				nums[nn] = '\0';
				letts[nl] = '\0';

				int num = shittyAtoi(nums, nn);
				for (int i = 0; i < num; i++) {
					//append(&masterbuf, letts);
					memcpy(masterbuf + mboffset, letts, nl);
					mboffset = mboffset + nl;
				}

				if (c == '\0') {
					break; 
				}

				triger = 0;
				nums[0] = c;
				nn = 1;
				nl = 0;
			}
			else {
				nums[nn] = c;
				nn++;
			}
		}
		else {
			letts[nl] = c;
			nl++;
			triger = 1;
		}

		offset++;
	}
	delete[] letts;
	return masterbuf;

}

int main() {
	
	std::string input;
	std::cin >> input;
	std::cin.get();
	char * res = notmain((char *)(input.c_str()));

	std::cout << res;

	std::cin.get();
	return 0;
}

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
1AAAAAAAAAAAAAAAAAAAA

correct output
AAAAAAAAAAAAAAAAAAAA

user output
AAAAAAAAAAAAAAAAAAAA

Test 2

Group: 1

Verdict: ACCEPTED

input
1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A...

correct output
AAAAAAAAAAAAAAAAAAAA

user output
AAAAAAAAAAAAAAAAAAAA

Test 3

Group: 1

Verdict: ACCEPTED

input
20A

correct output
AAAAAAAAAAAAAAAAAAAA

user output
AAAAAAAAAAAAAAAAAAAA

Test 4

Group: 1

Verdict: ACCEPTED

input
2N1J2F1XH2D2B2VT1N1ES

correct output
NNJFFXHDDBBVTVTNES

user output
NNJFFXHDDBBVTVTNES

Test 5

Group: 1

Verdict: ACCEPTED

input
2Z1E1UN1P2A2A1D2F2EZ1FZ1J

correct output
ZZEUNPAAAADFFEZEZFZJ

user output
ZZEUNPAAAADFFEZEZFZJ

Test 6

Group: 2

Verdict: ACCEPTED

input
1AAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

correct output
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

user output
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

Test 7

Group: 2

Verdict: ACCEPTED

input
1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A...

correct output
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

user output
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

Test 8

Group: 2

Verdict: ACCEPTED

input
1000A

correct output
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

user output
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

Test 9

Group: 2

Verdict: ACCEPTED

input
11QOUDQFAFUPAYCPXZ15KANCLRGT9S...

correct output
QOUDQFAFUPAYCPXZQOUDQFAFUPAYCP...

user output
QOUDQFAFUPAYCPXZQOUDQFAFUPAYCP...

Test 10

Group: 2

Verdict: ACCEPTED

input
20NFBIUXOSO10XRXZRMULZDUFK14BB...

correct output
NFBIUXOSONFBIUXOSONFBIUXOSONFB...

user output
NFBIUXOSONFBIUXOSONFBIUXOSONFB...

Test 11

Group: 3

Verdict: ACCEPTED

input
1AAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

correct output
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

user output
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

Test 12

Group: 3

Verdict: ACCEPTED

input
1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A...

correct output
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

user output
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

Test 13

Group: 3

Verdict: ACCEPTED

input
1000000A

correct output
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

user output
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

Test 14

Group: 3

Verdict: ACCEPTED

input
87GEIGDBZCYGSFYYCGQUAWQJFUUAQG...

correct output
GEIGDBZCYGSFYYCGQUAWQJFUUAQGDT...

user output
GEIGDBZCYGSFYYCGQUAWQJFUUAQGDT...

Test 15

Group: 3

Verdict: ACCEPTED

input
316XXYCLTBFQRAXHQPTLDB275NMQJD...

correct output
XXYCLTBFQRAXHQPTLDBXXYCLTBFQRA...

user output
XXYCLTBFQRAXHQPTLDBXXYCLTBFQRA...