http://www.codeforces.com/contest/477/problem/C
题目大意:给你n个集合,每个集合里面有四个数字,他们的gcd是k,输出符合条件的集合中m,m为集合中最大的数,且保证m要尽量小。
思路:由找规律可以得到集合的关系为1+6*k 2+6*k 3+6*k 5+6*k。
不过我的写法不是这样。。。(道理还是一样的)
//看看会不会爆int!数组会不会少了一维!
//取物问题一定要小心先手胜利的条件
#include <bits/stdc++.h>
using namespace std;
#define LL long long
#define ALL(a) a.begin(), a.end()
#define pb push_back
#define mk make_pair
#define fi first
#define se second
const int maxn = + ;
bool vis[maxn];
int cnt, n, k, m;
int a[];
vector<int> v; int main(){
scanf("%d%d", &n, &k);
int tmp = ;
for (int i = ; i <= n; i++){
int t1 = tmp + k, t2 = tmp + * k, t3 = tmp + * k, t4 = tmp + * k;
tmp = t4 + k;
}
printf("%d\n", tmp - k);
tmp = ;
for (int i = ; i <= n; i++){
int t1 = tmp + k, t2 = tmp + * k, t3 = tmp + * k, t4 = tmp + * k;
tmp = t4 + k;
printf("%d %d %d %d\n", t1, t2, t3, t4);
}
return ;
}