10306 - e-Coins
来源:互联网 发布:mac book pro型号大全 编辑:程序博客网 时间:2024/05/29 12:57
描述:刚开始没看懂题目,原来是要凑出一个数(x,y),使得x^2+y^2==s^2#include <cstdio>#include <cstring>int v[310][310],arr[45][2];int pow_two(int x,int y){ return x*x+y*y;}int main(){ // freopen("a.txt","r",stdin); int n,m,t,sum,count; scanf("%d",&t); while(t--) { memset(v,0,sizeof(v)); v[0][0]=1; scanf("%d%d",&n,&m); int x,y; sum=m*m; count=0; for(int i=0; i<n; i++) { scanf("%d %d",&x,&y); for(int j=0; j<m; j++) for(int k=0; k<m; k++) if(v[j][k]&&pow_two(x+j,y+k)<=sum&&(!v[j+x][y+k]||v[j+x][k+y]>v[j][k]+1)) { v[j+x][y+k]=v[j][k]+1; if(pow_two(x+j,y+k)==sum&&(!count||count>v[j+x][y+k])) count=v[j+x][y+k]; } } if(count) printf("%d\n",count-1); else puts("not possible"); } return 0;}