Ifter Party LightOJ - 1014(水题)

题意:有C个人,给P个食物,每人吃Q个,剩L个。然后给你P和L(Q>L),让你求Q的可能情况,如果有多种可能,从小到大输出;如果不存在,输出impossible

就是求写出公式 遍历c求P-L的因子就出来了

用set 正好

#include <iostream>
#include <cstdio>
#include <sstream>
#include <cstring>
#include <map>
#include <set>
#include <vector>
#include <stack>
#include <queue>
#include <algorithm>
#include <cmath>
#define MOD 2018
#define LL long long
#define ULL unsigned long long
#define Pair pair<int, int>
#define mem(a, b) memset(a, b, sizeof(a))
#define _  ios_base::sync_with_stdio(0),cin.tie(0)
//freopen("1.txt", "r", stdin);
using namespace std;
const int maxn = 10010, INF = 0x7fffffff;
set<LL> s;
int main()
{
    int T, kase = 0;
    scanf("%d",&T);
    while(T--)
    {
        s.clear();
        LL p, l;
        scanf("%lld%lld",&p,&l);
        for(LL i=1; i * i<=p-l; i++)
            if((p-l)%i == 0)
            {
                if(i > l)
                    s.insert(i);
                if((p-l)/i > l)
                    s.insert((p-l)/i);
            }

        printf("Case %d:",++kase);
        if(s.empty())
            printf(" impossible");
        else
            for(set<LL>::iterator it = s.begin(); it!=s.end(); it++)
            {
                printf(" ");
                printf("%lld",*it);
            }
        printf("\n");
    }


    return 0;
}

 

题意:有C个人,给P个食物,每人吃Q个,剩L个。然后给你P和L(Q>L),让你求Q的可能情况,如果有多种可能,从小到大输出;如果不存在,输出impossible
posted @ 2018-07-20 15:24  WTSRUVF  阅读(194)  评论(0编辑  收藏  举报