Submission #1111327

#TimeUsernameProblemLanguageResultExecution timeMemory
1111327sleepntsheepTopical (NOI23_topical)C11
12 / 100
158 ms45180 KiB
#include <stdio.h>
#include <stdlib.h>

#define N (1<<20)

int n, k, r_[N], u_[N], *r[N], *u[N], focus_topic, oc_[N], *oc[N], c[N], a[N], ii[N], z;

int cmpr(const void *i, const void *j) {
	return r[*(const int*)i][focus_topic] - r[*(const int*)j][focus_topic];
}

void check(int topic) {
	while (ii[topic] < n && r[oc[topic][ii[topic]]][topic] <= a[topic]) {
		if (k == ++c[oc[topic][ii[topic]]]) {
			++z;
			for (int jj = 0; jj < k; ++jj) 
				a[jj] += u[oc[topic][ii[topic]]][jj];
		}
		++ii[topic];
	}
}

int main() {
	scanf("%d%d", &n, &k);
	for (int j = 0, i = 0; i < n; ++i, j += k) r[i] = r_ + j, u[i] = u_ + j;

	for (int i = 0; i < n * k; ++i) scanf("%d", r_ + i);
	for (int i = 0; i < n * k; ++i) scanf("%d", u_ + i);

	for (int i = 0, j = 0; i < k; ++i, j += n) {
		oc[i] = oc_ + j;

		for (int l = 0; l < n; ++l)
			oc[i][l] = l;
		focus_topic = i;
		qsort(oc[i], n, sizeof **oc, cmpr);
	}

	for (int j = 0; j <= n; ++j)
		for (int i = 0; i < k; ++i) 
			check(i);

	printf("%d", z);
}

Compilation message (stderr)

Main.c: In function 'main':
Main.c:24:2: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   24 |  scanf("%d%d", &n, &k);
      |  ^~~~~~~~~~~~~~~~~~~~~
Main.c:27:34: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   27 |  for (int i = 0; i < n * k; ++i) scanf("%d", r_ + i);
      |                                  ^~~~~~~~~~~~~~~~~~~
Main.c:28:34: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   28 |  for (int i = 0; i < n * k; ++i) scanf("%d", u_ + i);
      |                                  ^~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...