2018-ACetic_ACid/AugTrain-04/D
从 Trac 迁移的文章
这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。
原文章内容如下:
{{{
//#include <bits/stdc++.h>
//
//typedef long long ll;
//using namespace std;
//
//int h;
//struct monstor
//{
// int h;
// int d;
// int pos;
// int dead;
//};
//
//monstor m[10];
//
//int c[10][10]; // c[i][j] : monstor j in cell i
//int tower[10] = { 3, 3, 1, 1, 1, 1, 1, 1, 1, 0 };
//int delay[10];
//int play()
//{
// int cnt = 0;
// int t = 1;
// for (int i = 0; i < 10; i++)
// {
// delay[i] = 1;
// }
// for (int i = 0; i < 10; i++)
// {
// if (tower[i] == 3) // slow
// {
// for (int j = i; j < min(10, i + 5); j++)
// {
// delay[j]++;
// }
// }
// }
// int kill = 0;
// int tot_m = 0;
// do
// {
// //printf("t = %d\n", t);
// if (t <= 10)
// {
// cnt++;
// m[tot_m].h = h;
// m[tot_m].d = delay[0];
// m[tot_m].pos = 0;
// m[tot_m].dead = false;
// c[0][tot_m] = 1;
//
// tot_m++;
// }
//
// for (int i = 0; i < 10; i++)
// {
// if (tower[i] == 1) // gun
// {
// for (int j = 0; j < 10; j++) if (c[i][j])
// {
// m[j].h -= 1;
// break;
// }
// }
//
// if (tower[i] == 2) if (t % 3 == 0) // rocket
// {
// for (int j = 0; j < 10; j++) if (c[i][j])
// {
// m[j].h -= 4;
// }
// }
// }
// for (int j = 0; j < tot_m; j++) if (!m[j].dead)
// {
// if (m[j].h <= 0)
// {
// cnt--;
// kill++;
// c[m[j].pos][j] = 0;
// m[j].dead = true;
// continue;
// }
// m[j].d--;
// if (m[j].d == 0)
// {
// c[m[j].pos][j] = 0;
// m[j].pos++;
// if (m[j].pos < 10)
// {
// c[m[j].pos][j] = 1;
// m[j].d = delay[m[j].pos];
// }
// else
// {
// cnt--;
// m[j].dead = true;
// }
// }
// }
// t++;
// } while (t <= 10 || cnt > 0);
// return kill;
//}
//
//char s[5] = ".GRS";
//int ans[101];
//string sol[101];
//
//int get_price()
//{
// int ret = 0;
// for (int i = 0; i < 10; i++)
// {
// if (tower[i] == 1) ret += 3;
// if (tower[i] == 2) ret += 10;
// if (tower[i] == 3) ret += 5;
// }
// return ret;
//}
//
//string get_str(int x)
//{
// string s;
// for (int i = 0; i < 10; i++)
// {
// s += ::s[x & 3];
// x >>= 2;
// }
// return s;
//}
//int main()
//{
// //freopen("defend.in", "r", stdin);
// for (h = 0; h <= 30; h++)
// {
// memset(ans, 0, sizeof(ans));
// memset(sol, 0, sizeof(sol));
// for (int i = 0; i < 1048576; i++)
// {
// memset(c, 0, sizeof(c));
// memset(tower, 0, sizeof(tower));
// memset(delay, 0, sizeof(delay));
// int t = i;
// for (int j = 0; j < 10; j++)
// {
// tower[j] = t & 3;
// t >>= 2;
// }
// int p = get_price();
// int k = play();
//
// //for (int i = 0; i < 10; i++) printf("%d", tower[i]);printf(" p = %d, k = %d\n", p, k);
// if (k > ans[p] || (k == ans[p] && sol[p] > get_str(i)))
// {
// ans[p] = k;
// sol[p] = get_str(i);
// }
// }
//
// printf("s[%d] = \"", h);
// int best = 0;
// for (int i = 0; i <= 100; i++)
// {
// if (ans[i] > best)
// {
// best = ans[i];
// printf("$%d -> kill %d with %s\\n", i, ans[i], sol[i].c_str());
// }
// }
// printf("\";\n");
// }
//}
#include <bits/stdc++.h>
using namespace std;
string s[31];
int main()
{
s[0] = "$0 -> kill 10 with ..........\n";
s[1] = "$3 -> kill 10 with .........G\n";
s[2] = "$6 -> kill 10 with ........GG\n";
s[3] = "$9 -> kill 10 with .......GGG\n";
s[4] = "$10 -> kill 4 with ........R.\n$12 -> kill 10 with ......GGGG\n";
s[5] = "$13 -> kill 4 with ........RG\n$15 -> kill 10 with .....GGGGG\n";
s[6] = "$14 -> kill 1 with ......SGGG\n$16 -> kill 4 with .......GRG\n$18 -> kill 10 with ....GGGGGG\n";
s[7] = "$17 -> kill 1 with .....GSGGG\n$19 -> kill 4 with ......GGRG\n$21 -> kill 10 with ...GGGGGGG\n";
s[8] = "$17 -> kill 1 with .....SGGGG\n$20 -> kill 4 with .....R..R.\n$24 -> kill 10 with ..GGGGGGGG\n";
s[9] = "$19 -> kill 1 with .....SSGGG\n$23 -> kill 4 with .....R..RG\n$27 -> kill 10 with .GGGGGGGGG\n";
s[10] = "$22 -> kill 1 with ....GSSGGG\n$26 -> kill 4 with .....R.GRG\n$30 -> kill 10 with GGGGGGGGGG\n";
s[11] = "$22 -> kill 1 with ....SSGGGG\n$29 -> kill 4 with .....RGGRG\n$34 -> kill 7 with ....GSRGGR\n$38 -> kill 10 with ....SSSRRG\n";
s[12] = "$25 -> kill 1 with ...GSSGGGG\n$30 -> kill 4 with ..R..R..R.\n$35 -> kill 7 with .....SSSRR\n$40 -> kill 10 with .....SSRRR\n";
s[13] = "$27 -> kill 1 with ...SSSGGGG\n$33 -> kill 4 with ..R..R..RG\n$38 -> kill 7 with ....GSSSRR\n$41 -> kill 8 with ..SSSRRGG.\n$43 -> kill 10 with ....GSSRRR\n";
s[14] = "$30 -> kill 1 with ..GSSSGGGG\n$36 -> kill 4 with ..R..R.GRG\n$41 -> kill 7 with ...GGSSSRR\n$44 -> kill 8 with .GSSSRRGG.\n$46 -> kill 10 with ...GGSSRRR\n";
s[15] = "$31 -> kill 1 with ....SSSGRG\n$39 -> kill 4 with ..R..RGGRG\n$44 -> kill 7 with ..GGGSSSRR\n$47 -> kill 8 with GGSSSRRGG.\n$49 -> kill 10 with ..GGGSSRRR\n";
s[16] = "$34 -> kill 1 with ...GSSSGRG\n$40 -> kill 4 with ..SSSRSR..\n$45 -> kill 7 with ....SSSRRR\n$50 -> kill 10 with ...SSSSRRR\n";
s[17] = "$34 -> kill 1 with ..SSSRGGG.\n$43 -> kill 4 with ..SSSRSR.G\n$48 -> kill 7 with ...GSSSRRR\n$53 -> kill 10 with ..GSSSSRRR\n";
s[18] = "$37 -> kill 1 with ..SSGSRGGG\n$46 -> kill 4 with ..SSSRSRGG\n$51 -> kill 7 with ..GGSSSRRR\n$56 -> kill 10 with .GGSSSSRRR\n";
s[19] = "$40 -> kill 1 with .GSSGSRGGG\n$49 -> kill 4 with .GSSSRSRGG\n$54 -> kill 7 with .GGGSSSRRR\n$59 -> kill 10 with GGGSSSSRRR\n";
s[20] = "$43 -> kill 1 with GGSSGSRGGG\n$50 -> kill 4 with ..SSSRSRR.\n$57 -> kill 7 with GGGGSSSRRR\n$70 -> kill 10 with .SRSSSRRRR\n";
s[21] = "$44 -> kill 1 with .SSSGRGGR.\n$53 -> kill 4 with ..SSSRSRRG\n$63 -> kill 7 with .GSSSRRSRR\n$73 -> kill 10 with GSRSSSRRRR\n";
s[22] = "$47 -> kill 1 with .SSSGRGGRG\n$56 -> kill 4 with .GSSSRSRRG\n$66 -> kill 7 with GGSSSRRSRR\n$80 -> kill 10 with SSRRRSSRRR\n";
s[23] = "$50 -> kill 1 with GSSSGRGGRG\n$59 -> kill 4 with GGSSSRSRRG\n$75 -> kill 7 with SRSRSSRSRR\n$80 -> kill 10 with SSRRRSSRRR\n";
s[24] = "$54 -> kill 1 with SRSSRGGGR.\n$60 -> kill 3 with .SSSRSRR.R\n$65 -> kill 4 with ..RSRSSRRR\n$75 -> kill 7 with SRSRSSRSRR\n$80 -> kill 10 with SSRRRSSRRR\n";
s[25] = "$57 -> kill 1 with SRSSRGGGRG\n$63 -> kill 3 with .SSSRSRRGR\n$68 -> kill 4 with .GRSRSSRRR\n";
s[26] = "$64 -> kill 1 with SRSSRGRGRG\n$66 -> kill 3 with GSSSRSRRGR\n$71 -> kill 4 with GGRSRSSRRR\n";
s[27] = "$66 -> kill 1 with SRRSSSRGGR\n$70 -> kill 3 with SSSRSRSSRR\n$75 -> kill 4 with SRRSSSRSRR\n";
s[28] = "$70 -> kill 3 with SSSRSRSSRR\n$75 -> kill 4 with SRRSSSRSRR\n";
s[29] = "$78 -> kill 3 with RSRSSRRRGR\n";
s[30] = "";
freopen("defend.in", "r", stdin);
freopen("defend.out", "w", stdout);
int h;
cin >> h;
cout << s[h];
}
}}}
//#include <bits/stdc++.h>
//
//typedef long long ll;
//using namespace std;
//
//int h;
//struct monstor
//{
// int h;
// int d;
// int pos;
// int dead;
//};
//
//monstor m[10];
//
//int c[10][10]; // c[i][j] : monstor j in cell i
//int tower[10] = { 3, 3, 1, 1, 1, 1, 1, 1, 1, 0 };
//int delay[10];
//int play()
//{
// int cnt = 0;
// int t = 1;
// for (int i = 0; i < 10; i++)
// {
// delay[i] = 1;
// }
// for (int i = 0; i < 10; i++)
// {
// if (tower[i] == 3) // slow
// {
// for (int j = i; j < min(10, i + 5); j++)
// {
// delay[j]++;
// }
// }
// }
// int kill = 0;
// int tot_m = 0;
// do
// {
// //printf("t = %d\n", t);
// if (t <= 10)
// {
// cnt++;
// m[tot_m].h = h;
// m[tot_m].d = delay[0];
// m[tot_m].pos = 0;
// m[tot_m].dead = false;
// c[0][tot_m] = 1;
//
// tot_m++;
// }
//
// for (int i = 0; i < 10; i++)
// {
// if (tower[i] == 1) // gun
// {
// for (int j = 0; j < 10; j++) if (c[i][j])
// {
// m[j].h -= 1;
// break;
// }
// }
//
// if (tower[i] == 2) if (t % 3 == 0) // rocket
// {
// for (int j = 0; j < 10; j++) if (c[i][j])
// {
// m[j].h -= 4;
// }
// }
// }
// for (int j = 0; j < tot_m; j++) if (!m[j].dead)
// {
// if (m[j].h <= 0)
// {
// cnt--;
// kill++;
// c[m[j].pos][j] = 0;
// m[j].dead = true;
// continue;
// }
// m[j].d--;
// if (m[j].d == 0)
// {
// c[m[j].pos][j] = 0;
// m[j].pos++;
// if (m[j].pos < 10)
// {
// c[m[j].pos][j] = 1;
// m[j].d = delay[m[j].pos];
// }
// else
// {
// cnt--;
// m[j].dead = true;
// }
// }
// }
// t++;
// } while (t <= 10 || cnt > 0);
// return kill;
//}
//
//char s[5] = ".GRS";
//int ans[101];
//string sol[101];
//
//int get_price()
//{
// int ret = 0;
// for (int i = 0; i < 10; i++)
// {
// if (tower[i] == 1) ret += 3;
// if (tower[i] == 2) ret += 10;
// if (tower[i] == 3) ret += 5;
// }
// return ret;
//}
//
//string get_str(int x)
//{
// string s;
// for (int i = 0; i < 10; i++)
// {
// s += ::s[x & 3];
// x >>= 2;
// }
// return s;
//}
//int main()
//{
// //freopen("defend.in", "r", stdin);
// for (h = 0; h <= 30; h++)
// {
// memset(ans, 0, sizeof(ans));
// memset(sol, 0, sizeof(sol));
// for (int i = 0; i < 1048576; i++)
// {
// memset(c, 0, sizeof(c));
// memset(tower, 0, sizeof(tower));
// memset(delay, 0, sizeof(delay));
// int t = i;
// for (int j = 0; j < 10; j++)
// {
// tower[j] = t & 3;
// t >>= 2;
// }
// int p = get_price();
// int k = play();
//
// //for (int i = 0; i < 10; i++) printf("%d", tower[i]);printf(" p = %d, k = %d\n", p, k);
// if (k > ans[p] || (k == ans[p] && sol[p] > get_str(i)))
// {
// ans[p] = k;
// sol[p] = get_str(i);
// }
// }
//
// printf("s[%d] = \"", h);
// int best = 0;
// for (int i = 0; i <= 100; i++)
// {
// if (ans[i] > best)
// {
// best = ans[i];
// printf("$%d -> kill %d with %s\\n", i, ans[i], sol[i].c_str());
// }
// }
// printf("\";\n");
// }
//}
#include <bits/stdc++.h>
using namespace std;
string s[31];
int main()
{
s[0] = "$0 -> kill 10 with ..........\n";
s[1] = "$3 -> kill 10 with .........G\n";
s[2] = "$6 -> kill 10 with ........GG\n";
s[3] = "$9 -> kill 10 with .......GGG\n";
s[4] = "$10 -> kill 4 with ........R.\n$12 -> kill 10 with ......GGGG\n";
s[5] = "$13 -> kill 4 with ........RG\n$15 -> kill 10 with .....GGGGG\n";
s[6] = "$14 -> kill 1 with ......SGGG\n$16 -> kill 4 with .......GRG\n$18 -> kill 10 with ....GGGGGG\n";
s[7] = "$17 -> kill 1 with .....GSGGG\n$19 -> kill 4 with ......GGRG\n$21 -> kill 10 with ...GGGGGGG\n";
s[8] = "$17 -> kill 1 with .....SGGGG\n$20 -> kill 4 with .....R..R.\n$24 -> kill 10 with ..GGGGGGGG\n";
s[9] = "$19 -> kill 1 with .....SSGGG\n$23 -> kill 4 with .....R..RG\n$27 -> kill 10 with .GGGGGGGGG\n";
s[10] = "$22 -> kill 1 with ....GSSGGG\n$26 -> kill 4 with .....R.GRG\n$30 -> kill 10 with GGGGGGGGGG\n";
s[11] = "$22 -> kill 1 with ....SSGGGG\n$29 -> kill 4 with .....RGGRG\n$34 -> kill 7 with ....GSRGGR\n$38 -> kill 10 with ....SSSRRG\n";
s[12] = "$25 -> kill 1 with ...GSSGGGG\n$30 -> kill 4 with ..R..R..R.\n$35 -> kill 7 with .....SSSRR\n$40 -> kill 10 with .....SSRRR\n";
s[13] = "$27 -> kill 1 with ...SSSGGGG\n$33 -> kill 4 with ..R..R..RG\n$38 -> kill 7 with ....GSSSRR\n$41 -> kill 8 with ..SSSRRGG.\n$43 -> kill 10 with ....GSSRRR\n";
s[14] = "$30 -> kill 1 with ..GSSSGGGG\n$36 -> kill 4 with ..R..R.GRG\n$41 -> kill 7 with ...GGSSSRR\n$44 -> kill 8 with .GSSSRRGG.\n$46 -> kill 10 with ...GGSSRRR\n";
s[15] = "$31 -> kill 1 with ....SSSGRG\n$39 -> kill 4 with ..R..RGGRG\n$44 -> kill 7 with ..GGGSSSRR\n$47 -> kill 8 with GGSSSRRGG.\n$49 -> kill 10 with ..GGGSSRRR\n";
s[16] = "$34 -> kill 1 with ...GSSSGRG\n$40 -> kill 4 with ..SSSRSR..\n$45 -> kill 7 with ....SSSRRR\n$50 -> kill 10 with ...SSSSRRR\n";
s[17] = "$34 -> kill 1 with ..SSSRGGG.\n$43 -> kill 4 with ..SSSRSR.G\n$48 -> kill 7 with ...GSSSRRR\n$53 -> kill 10 with ..GSSSSRRR\n";
s[18] = "$37 -> kill 1 with ..SSGSRGGG\n$46 -> kill 4 with ..SSSRSRGG\n$51 -> kill 7 with ..GGSSSRRR\n$56 -> kill 10 with .GGSSSSRRR\n";
s[19] = "$40 -> kill 1 with .GSSGSRGGG\n$49 -> kill 4 with .GSSSRSRGG\n$54 -> kill 7 with .GGGSSSRRR\n$59 -> kill 10 with GGGSSSSRRR\n";
s[20] = "$43 -> kill 1 with GGSSGSRGGG\n$50 -> kill 4 with ..SSSRSRR.\n$57 -> kill 7 with GGGGSSSRRR\n$70 -> kill 10 with .SRSSSRRRR\n";
s[21] = "$44 -> kill 1 with .SSSGRGGR.\n$53 -> kill 4 with ..SSSRSRRG\n$63 -> kill 7 with .GSSSRRSRR\n$73 -> kill 10 with GSRSSSRRRR\n";
s[22] = "$47 -> kill 1 with .SSSGRGGRG\n$56 -> kill 4 with .GSSSRSRRG\n$66 -> kill 7 with GGSSSRRSRR\n$80 -> kill 10 with SSRRRSSRRR\n";
s[23] = "$50 -> kill 1 with GSSSGRGGRG\n$59 -> kill 4 with GGSSSRSRRG\n$75 -> kill 7 with SRSRSSRSRR\n$80 -> kill 10 with SSRRRSSRRR\n";
s[24] = "$54 -> kill 1 with SRSSRGGGR.\n$60 -> kill 3 with .SSSRSRR.R\n$65 -> kill 4 with ..RSRSSRRR\n$75 -> kill 7 with SRSRSSRSRR\n$80 -> kill 10 with SSRRRSSRRR\n";
s[25] = "$57 -> kill 1 with SRSSRGGGRG\n$63 -> kill 3 with .SSSRSRRGR\n$68 -> kill 4 with .GRSRSSRRR\n";
s[26] = "$64 -> kill 1 with SRSSRGRGRG\n$66 -> kill 3 with GSSSRSRRGR\n$71 -> kill 4 with GGRSRSSRRR\n";
s[27] = "$66 -> kill 1 with SRRSSSRGGR\n$70 -> kill 3 with SSSRSRSSRR\n$75 -> kill 4 with SRRSSSRSRR\n";
s[28] = "$70 -> kill 3 with SSSRSRSSRR\n$75 -> kill 4 with SRRSSSRSRR\n";
s[29] = "$78 -> kill 3 with RSRSSRRRGR\n";
s[30] = "";
freopen("defend.in", "r", stdin);
freopen("defend.out", "w", stdout);
int h;
cin >> h;
cout << s[h];
}