山科2017acm校赛D题:有解嘛?

来源:互联网 发布:leetcode python 编辑:程序博客网 时间:2024/06/04 00:24

问题 D: 有解吗?

时间限制: 1 Sec  内存限制: 64 MB
提交: 540  解决: 73
[提交][状态][讨论版]

题目描述

给出方程a * 1234567 + b * 123456 + c * 1234 = n。其中a、b、c均为非负整数变量,n(1 <= n <= 10 ^ 9)为给出整数常量。判断方程是否有解。

输入

一个整数n。

输出

如果有解,输出“YES”;无解,输出“NO”。

样例输入

1234567

样例输出

YES

提示

题目主要尽量需要控制和减少循环的次数,控制时间是关键。

附上ac代码:

#include<iostream>using namespace std;int main(){    long long int n;    cin>>n;    int k=n/1234567;    for(int i=0;i<k+1;i++)    {        for(int j=0;;j++)        {            int c=n-1234567*i-j*123456;            if(c<0)                break;            if(c%1234==0)            {                cout<<"YES"<<endl;                return 0;            }        }    }    cout<<"NO"<<endl;}


0 0