Submission #418422

#TimeUsernameProblemLanguageResultExecution timeMemory
418422EncryptingWolfMeetings (IOI18_meetings)C++14
Compilation error
0 ms0 KiB
#include <vector>
#include <iostream>
#include <queue>
typedef long long ll;
#define FOR(i,x,y) for (ll i = x; i<y; i++)
using namespace std;



vector<long long> minimum_costs(vector<int> H, vector<int> L, vector<int> R)
{

	vector<ll> ou;


	FOR(Z, 0, L.size())
	{
		vector<pair<ll, ll>> monSL;
		vector<pair<ll, ll>> monSR;
		vector<ll> distL;
		vector<ll> distR;

		vector<int> nH;

		FOR(i, L[Z], R[Z] + 1)
		{
			nH.push_back(H[i]);
		}
		distL.resize(nH.size());
		distR.resize(nH.size());
		FOR(i, 0,nH.size())
		{
			while (true)
			{
				if (monSL.size() == 0)
					break;
				else
				{
					if (nH[i] < monSL[monSL.size() - 1].first)
					{
						break;
					}
				}
				monSL.pop_back();
			}
			monSL.push_back({ nH[i],i });
			if (monSL.size() == 1)
			{
				distL[i] = monSL[0].first*(i + 1);
			}
			else
			{
				distL[i] = monSL[monSL.size() - 1].first*(monSL[monSL.size() - 1].second - monSL[monSL.size() - 2].second) + distL[monSL[monSL.size() - 2].second];
			}
		}
		reverse(nH.begin(),nH.end());
		FOR(i, 0, nH.size())
		{
			while (true)
			{
				if (monSR.size() == 0)
					break;
				else
				{
					if (nH[i] < monSR[monSR.size() - 1].first)
					{
						break;
					}
				}
				monSR.pop_back();
			}
			monSR.push_back({ nH[i],i });
			if (monSR.size() == 1)
			{
				distR[i] = monSR[0].first*(i + 1);
			}
			else
			{
				distR[i] = monSR[monSR.size() - 1].first*(monSR[monSR.size() - 1].second - monSR[monSR.size() - 2].second) + distR[monSR[monSR.size() - 2].second];
			}
		}
		reverse(nH.begin(), nH.end());
		reverse(distR.begin(), distR.end());
		ll mi = 1e9;
		FOR(i, 0, nH.size())
			mi = min(mi, distL[i] + distR[i]-nH[i]);
		ou.push_back(mi);
	}
	FOR(i, 0, ou.size())
	{
		cout << ou[i] << ' ';
	}
	return ou;
}

Compilation message (stderr)

meetings.cpp: In function 'std::vector<long long int> minimum_costs(std::vector<int>, std::vector<int>, std::vector<int>)':
meetings.cpp:5:36: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    5 | #define FOR(i,x,y) for (ll i = x; i<y; i++)
......
   16 |  FOR(Z, 0, L.size())
      |      ~~~~~~~~~~~~~~                 
meetings.cpp:16:2: note: in expansion of macro 'FOR'
   16 |  FOR(Z, 0, L.size())
      |  ^~~
meetings.cpp:5:36: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    5 | #define FOR(i,x,y) for (ll i = x; i<y; i++)
......
   31 |   FOR(i, 0,nH.size())
      |       ~~~~~~~~~~~~~~                
meetings.cpp:31:3: note: in expansion of macro 'FOR'
   31 |   FOR(i, 0,nH.size())
      |   ^~~
meetings.cpp:56:3: error: 'reverse' was not declared in this scope
   56 |   reverse(nH.begin(),nH.end());
      |   ^~~~~~~
meetings.cpp:5:36: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    5 | #define FOR(i,x,y) for (ll i = x; i<y; i++)
......
   57 |   FOR(i, 0, nH.size())
      |       ~~~~~~~~~~~~~~~               
meetings.cpp:57:3: note: in expansion of macro 'FOR'
   57 |   FOR(i, 0, nH.size())
      |   ^~~
meetings.cpp:5:36: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    5 | #define FOR(i,x,y) for (ll i = x; i<y; i++)
......
   85 |   FOR(i, 0, nH.size())
      |       ~~~~~~~~~~~~~~~               
meetings.cpp:85:3: note: in expansion of macro 'FOR'
   85 |   FOR(i, 0, nH.size())
      |   ^~~
meetings.cpp:5:36: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    5 | #define FOR(i,x,y) for (ll i = x; i<y; i++)
......
   89 |  FOR(i, 0, ou.size())
      |      ~~~~~~~~~~~~~~~                
meetings.cpp:89:2: note: in expansion of macro 'FOR'
   89 |  FOR(i, 0, ou.size())
      |  ^~~