【cf 681B】 Economy Game

题意

给你一个数 n ,问你能否存在 a,b,c ,使得 a1234567+b123456+c1234==n 成立。

思路

直接枚举a,b,c会超时,所以枚举a,b,看 (n(a1234567+b123456))%1234==0 是否成立。

代码

#include 
#include 
#include 
using namespace std;
typedef long long ll;
int main(){
    ll n;
    scanf("%I64d", &n);
    for(int a = 0; a <= 100; a ++){
        for(int b = 0; b <= 1000; b ++){
            int tt = a*1234567+b*123456;
            if(tt > n) break;
            if((n-tt)%1234 == 0){
                printf("YES");
                return 0;
            }
        }
    }
    printf("NO");
    return 0;
}

你可能感兴趣的:(===基本算法===,----模拟)