Submission #1365433

#TimeUsernameProblemLanguageResultExecution timeMemory
1365433weedywelonMonster-Go (EGOI25_monstergo)C++20
26 / 100
1 ms344 KiB
#include <algorithm>
#include <cmath>
#include <cstring>
#include <iostream>
#include <iomanip>
#include <limits.h>
#include <set>
#include <string>
#include <queue>
#include <stack>
#include <unordered_map>
#include <unordered_set>
#include <vector>
#include <deque>
#include <map>
#include <chrono>
#include <random>
#include <bitset>
#include <tuple>
#define SZ(x) int(x.size())
#define FR(i,a,b) for(int i=(a);i<(b);++i)
#define FOR(i,n) FR(i,0,n)
#define FAST ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define A first
#define B second
#define mp(a,b) make_pair(a,b)
typedef long long LL;
typedef long double LD;
typedef unsigned long long ULL;
typedef unsigned __int128 U128;
typedef __int128 I128;
typedef std::pair<int,int> PII;
typedef std::pair<LL,LL> PLL;
using namespace std;

vector<vector<LL> > chunk;
vector<vector<LL> > ans;
signed main(){
	FAST;
	LL n; cin>>n;
	
	if (n<=4){
		FOR(i,n){
			FOR(j,12) cout<<i*12+j<<" ";
			cout<<"\n";
		}
		return 0;
	}
	
	if (n==28 || n==21 || n==15 || n==10 || n==6 || n==7 || n==8){
		LL k=0;
		if (n==28) k=8;
		else if (n==21) k=7;
		else if (n==15) k=6;
		else if (n==10) k=5;
		else if (n==6 || n==7 || n==8) k=4;
		
		vector<LL> cur;
		FOR(i,50){
			cur.push_back(i);
			if (SZ(cur)==6){
				chunk.push_back(cur);
				cur.clear();
			}
		}
		
		 FOR(i,k) FR(j,i+1,k){
			 vector<LL> tmp;
			 for (LL x:chunk[i]) tmp.push_back(x);
			 for (LL x:chunk[j]) tmp.push_back(x);
			 ans.push_back(tmp);
		 }
		 
		 if (n==7 || n==8){
			 vector<LL> tmp;
			 for (int i=49; i>=38; i--) tmp.push_back(i);
			 ans.push_back(tmp);
		 }
		 
		 if (n==8){
			  vector<LL> tmp;
			  for (int i=37; i>=26; i--) tmp.push_back(i);
			  ans.push_back(tmp);
		 }
		 
		 FOR(i,n){
			 FOR(j,12) cout<<ans[i][j]<<" ";
			 cout<<"\n";
		 }
		 return 0;
	}
	
	else if (n==20 || n==35){
		LL k=0;
		if (n==20) k=6;
		else if (n==35) k=7;
		
		vector<LL> cur;
		FOR(i,50){
			cur.push_back(i);
			if (SZ(cur)==4){
				chunk.push_back(cur);
				cur.clear();
			}
		}
		
		 FOR(i,k) FR(j,i+1,k) FR(h,j+1,k) {
			 vector<LL> tmp;
			 for (LL x:chunk[i]) tmp.push_back(x);
			 for (LL x:chunk[j]) tmp.push_back(x);
			 for (LL x:chunk[h]) tmp.push_back(x);
			 ans.push_back(tmp);
		 }
		 
		 FOR(i,n){
			 FOR(j,12) cout<<ans[i][j]<<" ";
			 cout<<"\n";
		 }
		 return 0;
	}
}
#Result Execution timeMemoryGrader output
Fetching results...