답안 #123730

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
123730 2019-07-02T05:44:25 Z 구재현(#3036) Naan (JOI19_naan) C++14
0 / 100
2 ms 380 KB
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 2005;
using lint = long long;
using pi = pair<int, int>;

int n, m;
int a[MAXN][MAXN];

vector<pi> frac;
vector<int> who;

pi howLeft[MAXN][MAXN];
bool vis[MAXN];

auto cmp = [](pi a, pi b){
	return (__int128)a.first * b.second < (__int128) b.first * a.second;
};

int main(){
	scanf("%d %d",&n,&m);
	for(int i=1; i<=n; i++){
		for(int j=1; j<=m; j++){
			scanf("%d",&a[i][j]);
		}
	}
	for(int i=1; i<=n; i++){
		lint sum = 0;
		for(int j=1; j<=m; j++){
			sum += a[i][j];
		}
		lint curSum = 0;
		howLeft[i][0] = pi(0, 1);
		int ptr = 0;
		for(int j=1; j<n; j++){
			while(curSum + a[i][ptr+1] * n<= sum * j){
				curSum += a[i][++ptr] * n;
			}
			lint tmp = sum * j - curSum;
			auto frac = pi(tmp, a[i][ptr + 1] * n);
			frac.first += 1ll * ptr * n * a[i][ptr + 1];
			howLeft[i][j] = frac;
		}
		howLeft[i][n] = pi(n, 1);
	}
	for(int i=1; i<=n; i++){
		pi minv(n + 1, 1);
		int pos = 1;
		for(int j=1; j<=n; j++){
			if(!vis[j] && cmp(howLeft[i][j], minv)){
				minv = howLeft[i][j];
				pos = j;
			}
		}
		vis[pos] = 1;
		who.push_back(pos);
		if(i < n) frac.push_back(minv);
	}
	for(auto &i : frac) printf("%d %d\n", i.first, i.second);
	for(auto &i : who) printf("%d ", i);
}

Compilation message

naan.cpp: In function 'int main()':
naan.cpp:21:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d",&n,&m);
  ~~~~~^~~~~~~~~~~~~~~
naan.cpp:24:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    scanf("%d",&a[i][j]);
    ~~~~~^~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 376 KB Not a fair distribution.
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 380 KB Not a fair distribution.
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 376 KB Not a fair distribution.
2 Halted 0 ms 0 KB -