Cod sursa(job #637582)

Utilizator Teodor94Teodor Plop Teodor94 Data 20 noiembrie 2011 15:21:16
Problema Minesweeper Scor 10
Compilator cpp Status done
Runda .com 2011 Marime 1.02 kb
#include<cstdio>

using namespace std;

const int N = 100000;

int n, m, rez[N];

void pune3() {
    rez[0] = 8;
    rez[1] = 1; rez[2] = 7; rez[3] = 5; rez[4] = 8; rez[5] = 2; rez[6] = 9; rez[7] = 8; rez[8] = 2;
}

void inmult(int a[], int x) {
    int i, t = 0;

    for (i = 1; i <= a[0] || t; ++i, t /= 10)
        a[i] = (t += a[i] * x) % 10;

    a[0] = i - 1;
}

void afis(int a[]) {
    for (int i = a[0]; i > 6; --i)
        printf("%d", a[i]);

    printf(".");

    for (int i = 6; i > 0; --i)
        printf("%d", a[i]);

    printf("\n");
}

void solve() {
    for (int i = 4; i <= n; ++i)
        inmult(rez, 3);

    afis(rez);
}

int main() {
    freopen("minesweeper.in", "r", stdin);
    freopen("minesweeper.out", "w", stdout);

    scanf("%d%d", &n, &m);
    n *= m;

    if (n == 1) {
        printf("2\n");
        return 0;
    }
    if (n == 2) {
        printf("9.642857\n");
        return 0;
    }
    if (n == 3) {
        printf("28.928571\n");
        return 0;
    }

    pune3();

    solve();

    return 0;
}