標籤:style blog color os io for div cti log
就枚舉四種情況,哪種能行就是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(暴力枚舉)