ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1110. Степень

int - AC, but long long - WA 2, Why?
Послано Maria Pukhlyakova [Tomsk PU] 29 авг 2010 21:41
You can see two program with one difference - type. What wrong with first program?

define _CRT_SECURE_NO_DEPRECATE
#define _USE_MATH_DEFINES

#include <utility>
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstdlib>
#include <string>
#include <cstring>
#include <queue>

using namespace std;

long long n, m, y, x;
bool yes = 0;
int main()
{
    //freopen("input.txt", "r", stdin);
    //freopen("output.txt", "w", stdout);
    scanf("%lld%lld%lld",&n,&m,&y);
    for (int i = 0; i < m; ++i)
    {
        x = i;
        if (n == 0) x = 1;
        for (int j = 2; j <= n; ++j)
            x = (x*i)%m;
        if (x%m == y)
        {
            yes = 1;
            printf("%lld", i);
            printf(" ");
        }
    }
    if (!yes) printf("-1");
    return 0;
}

#define _CRT_SECURE_NO_DEPRECATE
#define _USE_MATH_DEFINES

#include <utility>
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstdlib>
#include <string>
#include <cstring>
#include <queue>

using namespace std;

int n, m, y, x;
bool yes = 0;
int main()
{
    //freopen("input.txt", "r", stdin);
    //freopen("output.txt", "w", stdout);
    scanf("%d%d%d",&n,&m,&y);
    for (int i = 0; i < m; ++i)
    {
        x = i;
        if (n == 0) x = 1;
        for (int j = 2; j <= n; ++j)
            x = (x*i)%m;
        if (x%m == y)
        {
            yes = 1;
            printf("%d", i);
            printf(" ");
        }
    }
    if (!yes) printf("-1");
    return 0;
}