2291 Rotten Ropes
Javaのコード(236B)
1の補数を利用したところがおきにいり。
import java.util.*; class Main{ static{ Scanner s=new Scanner(System.in); for(int t=s.nextInt(),n,k,c,a[];t-->0;System.out.println(n)){ for(a=new int[k=n=s.nextInt()];n-->0;) a[n]=-s.nextInt(); for(Arrays.sort(a);k-->0;) n=n>(c=a[k]*~k)?n:c; } } }
Javaのチートコード(238B)
import java.util.*; class Main{ static{ Scanner s=new Scanner(System.in); for(int t=s.nextInt(),n,a[],c=0,k;t-->0;System.out.println(c)){ for(a=new int[k=n=s.nextInt()];n-->0;) a[n]=-s.nextInt(); for(Arrays.sort(a);k-->0;) c=c>(n=a[k]*~k)?c:n; } } }
C言語で盛り上がっていて、寂しいので書けないC言語を書いてみたコード。
#include<stdio.h> int intcmp(const void *a, const void *b) { return *((int*)a) - *((int*)b); } main(){ int t,n,k,c; scanf("%d",&t); for(;t-->0;) { scanf("%d",&k); n=k; int a[k]; for(;n-->0;){ scanf("%d",&a[n]); a[n]*=-1; } qsort(a,k,sizeof(int),intcmp); for(;k-->0;) n=n>(c=a[k]*~k)?n:c; printf("%d\n",n); } }