답안 #331340

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
331340 2020-11-28T03:48:50 Z Nson Potatoes and fertilizers (LMIO19_bulves) C++14
24 / 100
363 ms 23936 KB
#include <bits/stdc++.h>

using namespace std;
using ll = long long;

int main() {
	int n;
	scanf("%d", &n);

	multiset<ll> s;

	ll m = 0, b = 0;

	s.insert(0);

	auto can_rem = [&]() {
		if(s.empty()) return false;
		if(m <= 0) return false;
		if(*prev(s.end()) < 0) return false;
		if((int)s.size() >= 2 and *prev(prev(s.end())) >= 0) return true;
		return false;
	};

	auto smooth = [&]() {
		while(can_rem()) {
			m--;
			b += *prev(s.end());
			s.erase(prev(s.end()));
		}
	};

	ll d = 0;
	for(int i = 0; i < n; i++) {
		int aa, bb;
		scanf("%d %d", &aa, &bb);
		aa -= bb;
		d += aa;

		smooth();
		if(d >= 0) {
			s.insert(d);
			s.insert(d);
			b -= d;
			m += 1;
		}
		else {
			m += 1;
			b -= d;
		}
		// while(!s.empty() and *s.begin() < 0) s.erase(s.begin());
	}

	// smooth();
	while(!s.empty() and *prev(s.end()) > d) {
		m--;
		b += *prev(s.end());
		s.erase(prev(s.end()));
	}

	printf("%lld\n", d * m + b);

}

Compilation message

bulves.cpp: In function 'int main()':
bulves.cpp:8:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    8 |  scanf("%d", &n);
      |  ~~~~~^~~~~~~~~~
bulves.cpp:35:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   35 |   scanf("%d %d", &aa, &bb);
      |   ~~~~~^~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 2 ms 492 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 18 ms 748 KB Output is correct
5 Correct 58 ms 2412 KB Output is correct
6 Correct 197 ms 11648 KB Output is correct
7 Correct 116 ms 492 KB Output is correct
8 Correct 323 ms 23756 KB Output is correct
9 Correct 160 ms 2668 KB Output is correct
10 Correct 363 ms 23936 KB Output is correct
11 Correct 295 ms 23788 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 2 ms 492 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 18 ms 748 KB Output is correct
5 Correct 58 ms 2412 KB Output is correct
6 Correct 197 ms 11648 KB Output is correct
7 Correct 116 ms 492 KB Output is correct
8 Correct 323 ms 23756 KB Output is correct
9 Correct 160 ms 2668 KB Output is correct
10 Correct 363 ms 23936 KB Output is correct
11 Correct 295 ms 23788 KB Output is correct
12 Incorrect 89 ms 4076 KB Output isn't correct
13 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 2 ms 492 KB Output is correct
3 Correct 0 ms 364 KB Output is correct
4 Incorrect 1 ms 364 KB Output isn't correct
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 2 ms 492 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 0 ms 364 KB Output is correct
5 Incorrect 1 ms 364 KB Output isn't correct
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 2 ms 492 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 0 ms 364 KB Output is correct
5 Incorrect 1 ms 364 KB Output isn't correct
6 Halted 0 ms 0 KB -