Cod sursa(job #1853705)

Utilizator mouse_wirelessMouse Wireless mouse_wireless Data 21 ianuarie 2017 23:26:48
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <cstdio>
#include <cstdlib>
#include <cassert>
#include <vector>
#include <cstring>
#include <cctype>
#include <algorithm>
using namespace std;

#ifdef INFOARENA
#define ProblemName "cifra"
#endif

#define MCONCAT(A, B) A B
#ifdef ProblemName
#define InFile MCONCAT(ProblemName, ".in")
#define OuFile MCONCAT(ProblemName, ".out")
#else
#define InFile "fis.in"
#define OuFile "fis.out"
#endif
typedef long long LL;

int prec[] = { 0, 1, 4, 7, 6, 5, 6, 3, 6, 9, 0, 1, 6, 3, 6, 5, 6, 7, 4, 9 };

char buf[110];

int toint(char *c) {
	int ans = 0;
	for (char *i = c; *i; ++i)
		ans = ans * 10 + ((*i) - '0');
	return ans;
}

int main() {
	assert(freopen(InFile, "r", stdin));
	assert(freopen(OuFile, "w", stdout));
	int sprec = 0;
	for (int i = 0; i < 20; ++i)
		sprec += prec[i];
	sprec %= 10;
	//sprec e 4 deci ma intereseaaza doar ultima suta!
	int T;
	scanf("%d", &T);
	while (T--) {
		scanf("%s", buf);
		int L = strlen(buf);
		char *c = buf;
		if (L >= 3)
			c = buf + L - 2;
		int k = toint(c);
		int ans = 0;
		for (int i = 1; i <= k; ++i)
			ans += prec[i % 20];
		ans %= 10;
		printf("%d\n", ans);
	}
	return 0;
}