CSES - E4590 2016 2 - Results
Submission details
Task:ModAdd
Sender:idan
Submission time:2016-09-24 15:50:23 +0300
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.05 sdetails
#2ACCEPTED0.06 sdetails
#3ACCEPTED0.06 sdetails
#4ACCEPTED0.06 sdetails
#5ACCEPTED0.06 sdetails
#6ACCEPTED0.05 sdetails
#7ACCEPTED0.05 sdetails
#8ACCEPTED0.06 sdetails
#9ACCEPTED0.05 sdetails
#10ACCEPTED0.06 sdetails

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:57:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  puts(numOfZeroes == strlen(result) ? "0" : strrev(result));
                                   ^
input/code.cpp:33:19: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%s", numA);
                   ^
input/code.cpp:34:19: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%s", numB);
                   ^

Code

/*********************************
* Class: MAGSHIMIM C2			 *
* Week 1               			 *
**********************************/

#include <stdio.h>
#include <math.h>
#include <string.h>




char *strrev(char *str){
	char c, *front, *back;

	if (!str || !*str)
		return str;
	for (front = str, back = str + strlen(str) - 1; front < back; front++, back--){
		c = *front; *front = *back; *back = c;
	}
	return str;
}

char numA[1000101] = { 0 };
char numB[1000101] = { 0 };
char result[1000101] = { 0 };

int main(void)
{
	int i = 0, currentAlsd = 0, currentBlsd = 0, currentDigit = 0;


	scanf("%s", numA);
	scanf("%s", numB);

	int aIndex = strlen(numA) - 1;
	int bIndex = strlen(numB) - 1;
	//printf("Lengths %d %d ", aIndex, bIndex);
	int maxLength = strlen(numA) > strlen(numB) ? strlen(numA) : strlen(numB);

	//printf("MaxLength : %d", maxLength);
	//system("pause");

	for (i = 0; i < maxLength; i++)
	{
		currentAlsd = aIndex < 0 ? 0 : numA[aIndex--] - '0';
		currentBlsd = bIndex < 0 ? 0 : numB[bIndex--] - '0';
		currentDigit = (currentAlsd + currentBlsd) % 10;
		result[i] = currentDigit + '0';
		//puts(result);
		//printf("iteration %d : A lsd: %d B lsd: %d", i, currentAlsd, currentBlsd);

	}

	int numOfZeroes = strspn(result, "0");
	//printf("num of zeroes :%d\n", numOfZeroes);
	puts(numOfZeroes == strlen(result) ? "0" : strrev(result));

	//system("Pause");

}

Test details

Test 1

Verdict: ACCEPTED

input
3797629225
9766508989

correct output
2453127104

user output
2453127104

Test 2

Verdict: ACCEPTED

input
552139016901047883384892240490...

correct output
552139016901047883384892240490...

user output
552139016901047883384892240490...

Test 3

Verdict: ACCEPTED

input
860793811134668093345482099582...

correct output
487710306894083216377653715430...

user output
487710306894083216377653715430...

Test 4

Verdict: ACCEPTED

input
2
870841652294197226626825161089...

correct output
870841652294197226626825161089...

user output
870841652294197226626825161089...

Test 5

Verdict: ACCEPTED

input
0
404905566051213252279994991040...

correct output
404905566051213252279994991040...

user output
404905566051213252279994991040...

Test 6

Verdict: ACCEPTED

input
430112167406460960088878635088...

correct output
430112167406460960088878635088...

user output
430112167406460960088878635088...

Test 7

Verdict: ACCEPTED

input
867016005819001635643395991596...

correct output
999999999999999999999999999999...

user output
999999999999999999999999999999...

Test 8

Verdict: ACCEPTED

input
120453771521975552204976752778...

correct output
0

user output
0

Test 9

Verdict: ACCEPTED

input
239979749009277805816504910098...

correct output
239979749009277805816504910098...

user output
239979749009277805816504910098...

Test 10

Verdict: ACCEPTED

input
990963963634143754324162574923...

correct output
818540385713473048971388312665...

user output
818540385713473048971388312665...