/* ID: lucien23 PROG: ariprog LANG: C++ */ #include#include #include #include #include using namespace std; typedef struct{ int first; int different; }ArithProgressions; bool compProgressions(ArithProgressions item1,ArithProgressions item2) { if(item1.different item2.different) return false; else { if(item1.first >N>>M; set nums; vector progressions; for (int i=0;i<=M;i++) { for (int j=0;j<=M;j++) { nums.insert(i*i+j*j); } } for (set ::iterator it=nums.begin();it!=nums.end();it++) { set ::iterator it1=it; while(++it1!=nums.end()) { int diff=*it1-*it; if(*it+(N-1)*diff>2*M*M) break; int i; for (i=2;i::iterator it=progressions.begin();it!=progressions.end();it++) { outfile< first<<" "< different<