QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#749425#9749. 小凯的省奖之梦ptlksWA 881ms3956kbC++204.1kb2024-11-15 00:39:512024-11-15 00:39:52

Judging History

你现在查看的是最新测评结果

  • [2024-11-15 00:39:52]
  • 评测
  • 测评结果:WA
  • 用时:881ms
  • 内存:3956kb
  • [2024-11-15 00:39:51]
  • 提交

answer

#include <bits/stdc++.h>
#define ll long long
#define PII pair<int,int>
#define PI4 pair<int,array<int,3>>
#define endl '\n'
//#define int long long
#define LL __int128
#define i64 long long
#define  lc p<<1
#define  rc p<<1|1
using namespace  std;
const int N = 1e6 + 10, mod = 1e9 + 7;
int s1, s2, s3;
struct stu {
	string name;
	int zy[2], dy[2], ty[2];
	int total[2];
	int index;
} a[505], b[505], c[505];
bool zongcecmp1(stu x, stu y) {
	if (x.total[0] != y.total[0])return x.total[0] > y.total[0];
	if (x.zy[0] != y.zy[0])return x.zy[0] > y.zy[0];
	return x.name < y.name;
}
bool zongcecmp2(stu x, stu y) {
	if (x.total[1] != y.total[1])return x.total[1] > y.total[1];
	if (x.zy[1] != y.zy[1])return x.zy[1] > y.zy[1];
	return x.name < y.name;
}
bool zycmp1(stu x, stu y) {
	return x.zy[0] > y.zy[0];
}
bool zycmp2(stu x, stu y) {
	return x.zy[1] > y.zy[1];
}
int zongceindex[505];
int zyindex[505];
int zyrank[505];
int prise[505][4];
int score[505];
bool finalcmp(stu x, stu y) {
	if (score[x.index] != score[y.index])return score[x.index] > score[y.index];
	if (x.total[0] + x.total[1] != y.total[0] + y.total[1])return x.total[0] + x.total[1] > y.total[0] + y.total[1];
	if (x.zy[0] + x.zy[1] != y.zy[0] + y.zy[1])return x.zy[0] + x.zy[1] > y.zy[0] + y.zy[1];
	return x.name < y.name;
}
void solve() {
	int n, k;
	cin >> n;
	int zy1, zy2;
	int pos = 0;
	for (int i = 1; i <= n; i++) {
		cin >> a[i].name >> a[i].zy[0] >> a[i].dy[0] >> a[i].ty[0] >> a[i].zy[1] >> a[i].dy[1] >> a[i].ty[1];
		for (int j = 0; j <= 1; j++) {
			a[i].total[j] = a[i].zy[j] + a[i].dy[j] + a[i].ty[j];
		}
		if (a[i].name == "crazyzhk") {
			zy1 = a[i].zy[0];
			zy2 = a[i].zy[1];
			pos = i;
		}
		a[i].index = i;
	}
	int m, p, q;
	cin >> m >> p >> q;

	int ans = 1e9;
	for (int l = zy1; l <= 100; l++) {
		for (int r = zy2; r <= 100; r++) {
			for (int k = 1; k <= n; k++) {
				score[k] = 0;
				prise[k][3] = prise[k][1] = prise[k][2] = 0;
				if (a[k].name == "crazyzhk") {
					a[k].total[0] += l - a[k].zy[0];
					a[k].total[1] += r - a[k].zy[1];
					a[k].zy[0] = l;
					a[k].zy[1] = r;
//					cout << a[k].zy[0] << ' ' << a[k].zy[1] << endl;
				}
				b[k] = a[k];
			}
			for (int op = 0; op <= 1; op++) {
				if (op == 0) {
					sort(a + 1, a + 1 + n, zongcecmp1);
					sort(b + 1, b + 1 + n, zycmp1);
				} else {
					sort(a + 1, a + 1 + n, zongcecmp2);
					sort(b + 1, b + 1 + n, zycmp2);
				}

//				for (int i = 1; i <= n; i++) {
//					cout << b[i].name << b[i].zy[op] << endl;
//				}
//				for (int i = 1; i <= n; i++) {
//					cout << a[i].name << a[i].total[op] << endl;
//				}
				int pp=1;
				for(int i=1;i<=n;i++){
					zongceindex[a[i].index]=i;
					zyindex[b[i].index]=i;
					if(i>1){
						if(b[i].zy[op]==b[i-1].zy[op]){
							zyrank[b[i].index]=zyrank[b[i-1].index];
						}else{
							zyrank[b[i].index]=pp++;
						}
					}else{
						zyrank[b[i].index]=pp++;
					}
				}
				s1 = n * 15 / 100;
				s2 = n * 25 / 100;
				s3 = n * 35 / 100;
				int p1 = n * 25 / 100, p2 = n * 45 / 100, p3 = n * 75 / 100;
//				cout<<s1<<' '<<s2<<' '<<s3<<' '<<p1<<' '<<p2<<' '<<p3<<endl;
				for (int i = 1; i <= n; i++) {
					if (s1 && zyrank[a[i].index] <= p1) {
						s1--;
						prise[a[i].index][1]++;
					} else if (s2 && zyrank[a[i].index] <= p2) {
						s2--;
						prise[a[i].index][2]++;
					} else if (s3 && zyrank[a[i].index] <= p3) {
						s3--;
						prise[a[i].index][3]++;
					}
				}
			}

			for (int i = 1; i <= n; i++) {
				score[i] += 15 * prise[i][1] + 10 * prise[i][2] + 5 * prise[i][3];
			}
			sort(a + 1, a + 1 + n, finalcmp);
//			for (int i = 1; i <= n; i++) {
//				cout << a[i].name << score[a[i].index] << endl;
//			}
			for (int i = 1; i <= m; i++) {
				if (a[i].index == pos) {
					ans = min(ans, (l - zy1) * p + (r - zy2) * q);
				}
//				cout << (l - zy1)*p + (r - zy2)*q << ' ' << l << ' ' << r << endl;

			}

		}
	}
	if (ans != 1e9)cout << ans << endl;
	else cout << "Surely next time\n";
}
signed main() {
	ios::sync_with_stdio(false), cin.tie(0);
	ll t = 1;
//	cin >> t;
//	euler(1e6);
	while (t--) {
		solve();
	}
}


詳細信息

Test #1:

score: 100
Accepted
time: 6ms
memory: 3792kb

input:

8
easycxk 94 12 77 74 70 55
hardzhk 80 80 95 96 20 60
crazyzhk 40 49 36 50 50 74
mike 50 98 93 36 90 23
amy 50 81 59 53 100 50
tom 50 71 69 53 90 60
john 65 73 41 60 34 69
jyy 12 26 29 29 53 50
2 44 14

output:

1494

result:

ok single line: '1494'

Test #2:

score: 0
Accepted
time: 3ms
memory: 3956kb

input:

7
a 30 61 27 94 20 70
b 64 57 68 8 43 34
c 97 66 94 33 79 42
crazyzhk 59 6 29 55 43 53
e 65 78 61 71 31 2
f 62 25 95 60 52 44
g 60 90 30 62 42 54
2 72 22

output:

858

result:

ok single line: '858'

Test #3:

score: 0
Accepted
time: 3ms
memory: 3692kb

input:

8
amy 94 12 77 100 70 55
hardzhk 90 80 95 96 20 60
john 90 39 16 70 50 74
mike 100 98 93 90 90 23
easycxk 70 81 59 73 100 50
ydzlhzs 100 85 89 100 90 60
crazyzhk 65 13 11 60 14 19
jyy 92 26 29 69 53 80
2 44 14

output:

Surely next time

result:

ok single line: 'Surely next time'

Test #4:

score: -100
Wrong Answer
time: 881ms
memory: 3716kb

input:

188
w 81 4 91 44 6 8
apbyloihyqjcrekq 73 30 30 39 56 4
fbrzsl 95 54 54 82 41 28
vkngftis 72 22 22 47 43 33
kehgasflquvcjed 43 68 53 5 26 49
efzjky 55 59 17 100 5 14
czockbgeibdncwekuwrq 11 61 71 21 18 21
eselhjadzufeonshb 96 5 91 15 67 14
mrvwolins 17 99 70 94 66 72
ona 43 27 26 63 54 19
trtdyfunitu...

output:

4068

result:

wrong answer 1st lines differ - expected: '2455', found: '4068'