1 条题解
-
0
C++ :
#include<cstdio> #include<cstdlib> #include<iostream> #include<queue> using namespace std; int main() { priority_queue<int>q; int n,k; cin>>n>>k; int x; for(int i=1;i<=n;++i) { cin>>x; q.push(x); } for(int i=1;i<=n-1;++i) { int sum=q.top(); q.pop(); sum=sum+q.top(); q.pop(); sum=sum/k; q.push(sum); } cout<<q.top(); return 0; }
Pascal :
var a:array[0..10000]of longint; n,s,i,k,p,j:longint; procedure qsort(l,r:longint); var i,j,mid,t:longint; begin i:=l;j:=r; mid:=a[(i+j) div 2]; while i<=j do begin while(a[i]>mid)do inc(i); while(a[j]<mid)do dec(j); if i<=j then begin t:=a[i];a[i]:=a[j];a[j]:=t; inc(i);dec(j); end; end; if l<j then qsort(l,j); if i<r then qsort(i,r); end; begin readln(n,k); for i:=1 to n do read(a[i]); qsort(1,n); i:=1; repeat inc(i); a[i]:=(a[i-1]+a[i]) div k; s:=a[i]; p:=n; for j:=i+1 to n do if s<a[j] then a[j-1]:=a[j] else begin p:=j-1;break;end; a[p]:=s; until i=n; writeln(a[n]); end.
Java :
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.util.PriorityQueue; import java.util.Queue; import java.util.StringTokenizer; public class Main { public static void main(String[] args) { // long sta = System.nanoTime(); InputStream is = System.in; OutputStream os = System.out; IN cin = new IN(is); PrintWriter cout = new PrintWriter(os); SO so = new SO(); so.solution(cin, cout); // long end = System.nanoTime(); // cout.println("耗时:" + (double)(end-sta)/1e6 + "ms"); cout.close(); } static final int MOD = (int)1e9 + 7; //实际代码开始的类-------------------------------------------------- static class SO { void solution(IN cin, PrintWriter cout) { int n = cin.nextInt(), k = cin.nextInt(); Queue<Integer> pq = new PriorityQueue<Integer>((a1,a2)->a2-a1); for(int i=0;i<n;++i) { pq.add(cin.nextInt()); } int cur = 0; while(n>1) { int a = pq.remove(), b = pq.remove(); cur = (a+b)/k; pq.add(cur); --n; } cout.println(pq.remove()); }//end solution }//end SO //以下是快读部分 static class IN { private BufferedReader reader; private StringTokenizer tokenizer; IN(InputStream is) { reader = new BufferedReader(new InputStreamReader(is), 32768); tokenizer = null; } public String next() { while (tokenizer == null || !tokenizer.hasMoreTokens()) { try { tokenizer = new StringTokenizer(reader.readLine()); } catch (IOException e) { throw new RuntimeException(e); } } return tokenizer.nextToken(); } public int nextInt() { return Integer.parseInt(next()); } public long nextLong() { return Long.parseLong(next()); } public double nextDouble() { return Double.parseDouble(next()); } } }
- 1
信息
- ID
- 711
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者