結果

問題 No.1324 Approximate the Matrix
ユーザー tailstails
提出日時 2020-12-21 01:08:12
言語 C
(gcc 13.3.0)
結果
WA  
実行時間 -
コード長 906 bytes
コンパイル時間 837 ms
コンパイル使用メモリ 31,104 KB
実行使用メモリ 6,948 KB
最終ジャッジ日時 2024-09-21 12:37:35
合計ジャッジ時間 1,999 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 8 WA * 34
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.c:4:1: warning: return type defaults to 'int' [-Wimplicit-int]
    4 | main(){
      | ^~~~
main.c: In function 'main':
main.c:5:9: warning: implicit declaration of function 'scanf' [-Wimplicit-function-declaration]
    5 |         scanf("%d%d",&n,&k);
      |         ^~~~~
main.c:1:1: note: include '<stdio.h>' or provide a declaration of 'scanf'
  +++ |+#include <stdio.h>
    1 | int n,k,a[200],b[200];
main.c:5:9: warning: incompatible implicit declaration of built-in function 'scanf' [-Wbuiltin-declaration-mismatch]
    5 |         scanf("%d%d",&n,&k);
      |         ^~~~~
main.c:5:9: note: include '<stdio.h>' or provide a declaration of 'scanf'
main.c:56:9: warning: implicit declaration of function 'printf' [-Wimplicit-function-declaration]
   56 |         printf("%ld",z);
      |         ^~~~~~
main.c:56:9: note: include '<stdio.h>' or provide a declaration of 'printf'
main.c:56:9: warning: incompatible implicit declaration of built-in function 'printf' [-Wbuiltin-declaration-mismatch]
main.c:56:9: note: include '<stdio.h>' or provide a declaration of 'printf'

ソースコード

diff #

int n,k,a[200],b[200];
int p[200][200];
int q[200][200];
main(){
	scanf("%d%d",&n,&k);
	for(int i=0;i<n;++i){
		scanf("%d",&a[i]);
	}
	for(int j=0;j<n;++j){
		scanf("%d",&b[j]);
	}
	for(int i=0;i<n;++i){
		for(int j=0;j<n;++j){
			scanf("%d",&p[i][j]);
		}
	}
	for(int i=0;i<n;++i){
		while(a[i]){
			int v=-500,x=0;
			for(int j=0;j<n;++j){
				if(v<p[i][j]-q[i][j]){
					v=p[i][j]-q[i][j];
					x=j;
				}
			}
			++q[i][x];
			--b[x];
			--a[i];
		}
	}
	int j0=0;
	int j1=0;
	while(1){
		while(j0<n&&b[j0]>=0) ++j0;
		while(j1<n&&b[j1]<=0) ++j1;
		if(j0==n) break;
		int v=-500,x=0;
		for(int i=0;i<n;++i){
			if(q[i][j0]>0&&v<p[i][j1]-q[i][j1]-p[i][j0]+q[i][j0]){
				v=p[i][j1]-q[i][j1]-p[i][j0]+q[i][j0];
				x=i;
			}
		}
		--q[x][j0];
		++q[x][j1];
		++b[j0];
		--b[j1];
	}
	long z=0;
	for(int i=0;i<n;++i){
		for(int j=0;j<n;++j){
			long d=p[i][j]-q[i][j];
			z+=d*d;
		}
	}
	printf("%ld",z);
}
0