답안 #830159

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
830159 2023-08-18T20:35:19 Z Baytoro 카니발 티켓 (IOI20_tickets) C++17
41 / 100
668 ms 84084 KB
#include "tickets.h"
//#include "grader.cpp"
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define fr first
#define sc second
//#define int long long
long long find_maximum(int k, vector<vector<int>> x) {
	int n=x.size(),m=x[0].size();
	if(k==1){
		vector<vector<int>> ans(n,vector<int>(m,-1));
		vector<pair<int,int>> v(n);
		vector<int> a;
		for(int i=0;i<n;i++){
			v[i]={x[i][0]+x[i][m-1],i};
		}
		sort(v.begin(),v.end());
		for(int i=0;i<n/2;i++){
			ans[v[i].sc][0]=0;
			a.pb(x[v[i].sc][0]);
		}
		for(int i=n/2;i<n;i++){
			ans[v[i].sc][m-1]=0;
			a.pb(x[v[i].sc][m-1]);
		}
		allocate_tickets(ans);
		sort(a.begin(),a.end());
		long long s=(a[n/2]),res=0;
		for(int i=0;i<n;i++) res+=abs(s-a[i]);
		return res;
	}
	else if(k==m){
		vector<vector<int>> ans(n,vector<int>(m,-1));
		long long res=0;
		vector<int> l(n),r(n,m-1),id(n),a(n);
		iota(id.begin(),id.end(),0);
		vector<pair<int,int>> v;
		for(int i=0;i<n;i++){
			for(int j=0;j<m;j++)
				v.pb({x[i][j],i});
		}
		sort(v.begin(),v.end());
		for(int i=0;i<(int)v.size()/2;i++)	
			a[v[i].sc]++;
		for(int t=0;t<k;t++){
			sort(id.begin(),id.end(),[&](int i, int j){
				return a[i]>a[j];
			});
			long long X=0,Y=0;
			for(int i=0;i<n/2;i++){
				X+=x[id[i]][l[id[i]]];
				ans[id[i]][l[id[i]]]=t;
				a[id[i]]--;
				l[id[i]]++;
			}
			for(int i=n/2;i<n;i++){
				Y+=x[id[i]][r[id[i]]];
				ans[id[i]][r[id[i]]]=t;
				r[id[i]]--;
			}
			res+=Y-X;
		}
		
		allocate_tickets(ans);
		return res;
	}
}

Compilation message

tickets.cpp: In function 'long long int find_maximum(int, std::vector<std::vector<int> >)':
tickets.cpp:68:1: warning: control reaches end of non-void function [-Wreturn-type]
   68 | }
      | ^
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 1 ms 724 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 2 ms 340 KB Output is correct
5 Correct 17 ms 2388 KB Output is correct
6 Correct 434 ms 51328 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Contestant returned 4 while correct return value is 6.
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 2 ms 468 KB Output is correct
5 Correct 25 ms 3680 KB Output is correct
6 Correct 4 ms 852 KB Output is correct
7 Correct 5 ms 1108 KB Output is correct
8 Correct 668 ms 83960 KB Output is correct
9 Correct 621 ms 78548 KB Output is correct
10 Correct 603 ms 78524 KB Output is correct
11 Correct 658 ms 84084 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 2 ms 340 KB Output is correct
3 Incorrect 2 ms 468 KB Contestant returned 188460030658 while correct return value is 191909121109.
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 2 ms 340 KB Output is correct
3 Incorrect 2 ms 468 KB Contestant returned 188460030658 while correct return value is 191909121109.
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 1 ms 724 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 2 ms 340 KB Output is correct
11 Correct 17 ms 2388 KB Output is correct
12 Correct 434 ms 51328 KB Output is correct
13 Incorrect 0 ms 212 KB Contestant returned 4 while correct return value is 6.
14 Halted 0 ms 0 KB -