제출 #543172

#제출 시각아이디문제언어결과실행 시간메모리
543172rainboyKemija (COCI22_kemija)C11
50 / 50
1 ms212 KiB
#include <ctype.h>
#include <stdio.h>
#include <string.h>

#define N	1000
#define A	26

int main() {
	int t;

	scanf("%d", &t);
	while (t--) {
		static char aa[N * 2 + 8], *bb;
		static int kk[A], ll[A];
		int n, m, h, i, j, a, c, da;

		scanf("%s", aa);
		n = 0;
		while (aa[n] != '-')
			n++;
		bb = aa + n + 2;
		m = 0;
		while (bb[m] != 0)
			m++;
		memset(kk, 0, sizeof kk);
		for (i = 0, j = 0; j <= n; j++)
			if (j == n || aa[j] == '+') {
				if (isdigit(aa[i]))
					c = aa[i] - '0', i++;
				else
					c = 1;
				for (h = i; h < j; h++)
					if (h + 1 < j && isdigit(aa[h + 1]))
						kk[aa[h] - 'A'] += c * (aa[h + 1] - '0'), h++;
					else
						kk[aa[h] - 'A'] += c;
				i = j + 1;
			}
		memset(ll, 0, sizeof ll);
		for (i = 0, j = 0; j <= m; j++)
			if (j == m || bb[j] == '+') {
				if (isdigit(bb[i]))
					c = bb[i] - '0', i++;
				else
					c = 1;
				for (h = i; h < j; h++)
					if (h + 1 < j && isdigit(bb[h + 1]))
						ll[bb[h] - 'A'] += c * (bb[h + 1] - '0'), h++;
					else
						ll[bb[h] - 'A'] += c;
				i = j + 1;
			}
		da = 1;
		for (a = 0; a < A; a++)
			if (kk[a] != ll[a]) {
				da = 0;
				break;
			}
		printf(da ? "DA\n" : "NE\n");
	}
	return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

Main.c: In function 'main':
Main.c:11:2: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   11 |  scanf("%d", &t);
      |  ^~~~~~~~~~~~~~~
Main.c:17:3: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   17 |   scanf("%s", aa);
      |   ^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...