Cod sursa(job #1454911)

Utilizator isa_mirica_mihaiMirica Matei isa_mirica_mihai Data 27 iunie 2015 12:14:04
Problema Pascal Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.43 kb
#include <cstdio>
using namespace std;
char v2[5000005], v3[5000005], v5[5000005];
int ver1_5(int n, char v[]){
    int x = 0, i, nr = 0;
    for (i = 1; i <= n; i++){
        x = x + v[n - i + 1] - v[i];
        if(x != 0){
            nr ++;
        }
    }
    return nr;
}
int ver4(int n, char v[]){
    int x = 0, i, nr = 0;
    for (i = 1; i <= n; i++){
        x = x + v[n - i + 1] - v[i];
        if(x > 0){
            nr ++;
        }
    }
    return nr;
}
int ver6(int n, char v1[], char v2[]){
    int x = 0, i, nr = 0, y;
    for (i = 1; i <= n; i++){
        x = x + v1[n - i + 1] - v1[i];
        y = y + v2[n - i + 1] - v2[i];
        if(x != 0 && y != 0){
            nr ++;
        }
    }
    return nr;
}
int main()
{
    freopen("pascal.in", "r", stdin);
    freopen("pascal.out", "w", stdout);
    int n, d, i, nr;
    scanf("%d%d", &n, &d);
    for (i = 1; i <= n; i ++){
        if(i % 2 == 0){
            v2[i] = v2[i / 2] + 1;
        }
        if(i % 3 == 0){
            v3[i] = v3[i / 3] + 1;
        }
        if(i % 5 == 0){
            v5[i] = v5[i / 5] + 1;
        }
    }
    if (d == 2)
        printf("%d", ver1_5(n, v2));
    else if (d == 3)
        printf("%d", ver1_5(n, v3));
    else if (d == 4)
        printf("%d", ver4(n, v2));
    else if (d == 5)
        printf("%d", ver1_5(n, v5));
    else
        printf("%d", ver6(n, v2, v3));
    return 0;
}