Submission #292479

# Submission time Handle Problem Language Result Execution time Memory
292479 2020-09-07T05:38:42 Z shrek12357 Go (COCI18_go) C++14
40 / 100
1 ms 384 KB
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <map>
#include <set>
#include <climits>
#include <cmath>
#include <fstream>
#include <queue>
using namespace std;

struct p {
	int a;
	int b;
	int t;
};

int main() {
	int n, m, z;
	cin >> n >> m >> z;
	vector<p> pokeL, pokeR;
	pokeL.push_back({ m, 0, 2005 });
	pokeR.push_back({ m, 0, 2005 });
	for (int i = 0; i < z; i++) {
		int a, b, c;
		cin >> a >> b >> c;
		if (a <= m) {
			pokeL.push_back({ a, b, c });
		}
		else {
			pokeR.push_back({ a, b, c });
		}
	}

	int best = 0;
	for (int i = 0; i < pokeR.size(); i++) {
		for (int j = 0; j < pokeL.size(); j++) {
			bool ok = false;
			int time = 2 * (m - pokeL[j].a);
			int cur = 0;
			for (int k = 0; k <= j; k++) {
				if (m - pokeL[k].a < pokeL[k].t) {
					cur += pokeL[k].b;
				}
			}
			for (int k = 0; k <= i; k++) {
				if (pokeR[k].a - m + time < pokeR[k].t) {
					cur += pokeR[k].b;
					if (k == i) {
						ok = true;
					}
				}
			}
			if (ok) {
				best = max(best, cur);
			}
		}
	}
	for (int i = 0; i < pokeL.size(); i++) {
		for (int j = 0; j < pokeR.size(); j++) {
			bool ok = false;
			int time = 2 * (pokeR[j].a - m);
			int cur = 0;
			for (int k = 0; k <= j; k++) {
				if (pokeR[k].a - m < pokeR[k].t) {
					cur += pokeR[k].b;
				}
			}
			for (int k = 0; k <= i; k++) {
				if (m - pokeL[k].a + time < pokeL[k].t) {
					cur += pokeL[k].b;
					if (k == i) {
						ok = true;
					}
				}
			}
			if (ok) {
				best = max(best, cur);
			}
		}
	}
	cout << best << endl;
}

Compilation message

go.cpp: In function 'int main()':
go.cpp:37:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<p>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |  for (int i = 0; i < pokeR.size(); i++) {
      |                  ~~^~~~~~~~~~~~~~
go.cpp:38:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<p>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |   for (int j = 0; j < pokeL.size(); j++) {
      |                   ~~^~~~~~~~~~~~~~
go.cpp:60:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<p>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   60 |  for (int i = 0; i < pokeL.size(); i++) {
      |                  ~~^~~~~~~~~~~~~~
go.cpp:61:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<p>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   61 |   for (int j = 0; j < pokeR.size(); j++) {
      |                   ~~^~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 256 KB Output is correct
2 Correct 0 ms 256 KB Output is correct
3 Correct 0 ms 256 KB Output is correct
4 Correct 1 ms 256 KB Output is correct
5 Incorrect 1 ms 256 KB Output isn't correct
6 Incorrect 1 ms 256 KB Output isn't correct
7 Incorrect 1 ms 256 KB Output isn't correct
8 Incorrect 1 ms 384 KB Output isn't correct
9 Incorrect 1 ms 384 KB Output isn't correct
10 Incorrect 1 ms 256 KB Output isn't correct