首页 > 代码库 > Codeforces Round #258 (Div. 2)C(暴力枚举)
Codeforces Round #258 (Div. 2)C(暴力枚举)
就枚举四种情况,哪种能行就是yes了。很简单,关键是写法,我写的又丑又长。。。看了zhanyl的写法顿时心生敬佩。写的干净利落,简直美如画。。。这是功力的体现!
以下是zhanyl的写法,转载在此以供学习:
#include <vector>#include <list>#include <queue>#include <map>#include <set>#include <deque>#include <stack>#include <bitset>#include <algorithm>#include <functional>#include <numeric>#include <utility>#include <sstream>#include <iostream>#include <iomanip>#include <cstdio>#include <cmath>#include <cstdlib>#include <ctime>#include <cstring>#include <tr1/unordered_set>#include <tr1/unordered_map>using namespace std;using namespace tr1;const int g[4][2]={{1,1},{1,-1},{-1,1},{-1,-1}};long long n,k,d[2],f[3];int t;bool ans;int main(){ scanf("%d",&t); while(t--){ scanf("%I64d%I64d%I64d%I64d",&n,&k,&d[0],&d[1]); if(n%3){ puts("no"); continue; } n=n/3; ans=false; for(int i=0;i<4;i++) if((k-g[i][0]*d[0]-g[i][1]*d[1])%3==0){ f[1]=(k-g[i][0]*d[0]-g[i][1]*d[1])/3; f[0]=f[1]+g[i][0]*d[0]; f[2]=f[1]+g[i][1]*d[1]; if(f[0]>=0&&f[1]>=0&&f[2]>=0&&f[0]<=n&&f[1]<=n&&f[2]<=n)ans=true; } if(ans)puts("yes"); else puts("no"); } return 0;}
Codeforces Round #258 (Div. 2)C(暴力枚举)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。