답안 #58153

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
58153 2018-07-17T04:32:40 Z 김세빈(#1689) Candies (JOI18_candies) C++11
0 / 100
7 ms 504 KB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair <ll, ll> pll;

set <pll> S, P;
ll n, ans;

int main()
{
	ll i, a, k;
	pll p, s, s_p, s_n;
	
	scanf("%lld", &n);
	
	for(i=0;i<n;i++){
		scanf("%lld", &a);
		S.insert(pll(i, a));
		P.insert(pll(-a, i));
	}
	
	for(i=0;i+i<n;i++){
		p = *P.begin(); ans -= p.first;
		s = pll(p.second, -p.first);
		k = -s.second;
		
		auto it = S.lower_bound(s);
		if(it != S.begin()){
			auto it_p = it; it_p --;
			s_p = *it_p;
			k += s_p.second;
			
			S.erase(s_p);
			P.erase(pll(-s_p.second, s_p.first));
		}
		
		it = S.lower_bound(s);
		{
			auto it_n = it; it_n ++;
			if(it_n != S.end()){
				s_n = *it_n;
				k += s_n.second;
				
				S.erase(s_n);
				P.erase(pll(-s_n.second, s_n.first));
			}
		}
		
		printf("%lld\n", ans);
		
		P.erase(p);
		S.erase(s);
		
		S.insert(pll(s.first, k));
		P.insert(pll(-k, s.first));
	}
	
	return 0;
}

Compilation message

candies.cpp: In function 'int main()':
candies.cpp:16:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%lld", &n);
  ~~~~~^~~~~~~~~~~~
candies.cpp:19:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%lld", &a);
   ~~~~~^~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 7 ms 504 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 7 ms 504 KB Output isn't correct
2 Halted 0 ms 0 KB -