View Code of Problem 61

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<malloc.h>


int main(){
	int t;
	scanf("%d", &t);
	while (t--) {
		int n;
		scanf("%d", &n);
		int *p = (int *)malloc((n+10) * sizeof(int));
		for (int i = 0;i < n;i++) {
			scanf("%d", &p[i]);
		}
		int max = p[0];
		for (int i = n - 1;i > 0;i--) {
			int flag = 1;
			for (int j = 0;j < n;j++) {
				if (p[j] < p[j + 1]) {
					int temp;
					temp = p[j];
					p[j] = p[j + 1];
					p[j + 1] = temp;
					flag = 0;
				}
			}
			if (flag)
				break;
		}
		int a;
		for (int i = 0;i < n;i++) {
			a = p[i] * (i + 1);
			if (a > max)
				max = a;
		}
		printf("%d\n", max);
	}



}

Double click to view unformatted code.


Back to problem 61