#include <stdio.h>
#include <stdlib.h>

#define FIN "buline.in"
#define FOUT "buline.out"
#define FOK "buline.ok"

int N, A[400005], S, P, L, s, p, l;

void result(char msg[], int p)
{
    fprintf(stderr, msg);
    printf("%d", p);
    exit(0);
}

int main(void)
{
    int i, a, b;
    FILE *f;

    f = fopen(FIN, "r");
    if (!f) result("Fisier de intrare lipsa!", 0);
    if (fscanf(f, "%d", &N) != 1)
        result("Fisier de intrare corupt!", 0);
    if (N < 1 || N > 200000)
        result("Fisier de intrare corupt!", 0);
    for (i = 1; i <= N; i++)
    {
        if (fscanf(f, "%d %d", &a, &b) != 2)
            result("Fisier de intrare corupt!", 0);
        if (a < 0 || a > 10000 || (b != 0 && b != 1))
            result("Fisier de intrare corupt!", 0);
        A[i] = A[N+i] = a*(!b ? -1 : +1);
    }

    f = fopen(FOK, "r");
    if (!f) result("Fisier ok lipsa!", 0);
    if (fscanf(f, "%d %d %d", &S, &P, &L) != 3)
        result("Fisier ok corupt!", 0);

    f = fopen(FOUT, "r");
    if (fscanf(f, "%d %d %d", &s, &p, &l) != 3)
        result("Fisier de iesire incomplet!", 0);
    if (s != S)
        result("Suma gresita!", 0);
    if (s == S && p == P && l == L)
        result("OK!", 10);
    if (p < 1 || p > N || l < 1 || l > N)
        result("Raspuns gresit!", 0);
    for (i = p; l; l--, i++)
        s -= A[i];
    if (!s) result("Solutie partial corecta!", 5);
    else result("Raspuns gresit!", 0);

    return 0;
}
